题解 | #密码验证合格程序#

密码验证合格程序

https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841

def check(pw):
    # length check
    if len(pw) < 9:
        return False
    # type check
    typeA, typeB, typeC, typeD = 0, 0, 0, 0
    flag = False
    for char in pw:
        if ord("a") <= ord(char) <= ord("z"):
            typeA = 1
        elif ord("A") <= ord(char) <= ord("Z"):
            typeB = 1
        elif ord("0") <= ord(char) <= ord("9"):
            typeC = 1
        else:
            typeD = 1
        if typeA + typeB + typeC + typeD > 2:
            flag = True
            break
    if not flag:
        return False
    
    # substr check
    subs = []
    for i in range(len(pw)-3):
        subs.append(pw[i:i+3])
    if len(subs) != len(set(subs)):
        return False
    
    return True

while True:
    try:
        if check(input()):
            print("OK")
        else:
            print("NG")
    except:
        break

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务