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

密码验证合格程序

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

def CheckPasswd(passwd):
    #检查长度
    if len(passwd)<=8:
        return "NG"
    #检查字符类型
    hasNum = 0
    hasLowercase = 0
    hasUppercase = 0
    hasOther = 0
    for i in range(len(passwd)):
        ascaii = ord(passwd[i])
        if ascaii >=ord('0') and ascaii <= ord('9'):
            hasNum = 1            
        elif ascaii >=ord('a') and ascaii <= ord('z'):
            hasLowercase = 1            
        elif ascaii >=ord('A') and ascaii <= ord('Z'):
            hasUppercase = 1
        else:
            hasOther = 1
    types =  hasNum + hasLowercase + hasUppercase + hasOther
    if types <3:
        return "NG"
    
    #检查长度大于2的重复子串
    for i in range(len(passwd)-3): #检查每个长度为3的子串是否重复出现即可
        substr = passwd[i:i+3]
        if len(passwd.split(substr))>2:
            return "NG"
    return "OK" #三项条件都满足
    

while 1:
    try:
        passwd = input().strip()
        print(CheckPasswd(passwd))
    except EOFError:
        break
全部评论

相关推荐

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