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

密码验证合格程序

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

有大神给出了s.split(code[i,i+3])>=3的代码判断是否存在大于2的重复子串,确实很巧妙,膜拜,
但是这种方法区分不出'RRRR'或者‘ababa’这种结构,所以我还是用传统遍历的方法判断:
def code_compl(code):
    m=len(code)
    if m<=8:
        return False
    lower=upper=digit=special=illegal=0
    for i in range(m):
        if code[i].islower():
            lower = 1
        elif code[i].isupper():
            upper = 1
        elif code[i].isdigit():
            digit = 1
        elif code[i] == ' ':
            illegal =0
        else :
            special = 1
        summ=lower+upper+digit+special+illegal
    if summ <3:
        return False 
    for i in range(m-3):
        for j in range(i+1,m-2):
            if code[i:i+3]==code[j:j+3]:
                return False
    return True
while 1:
    try:
        print('OK' if code_compl(input()) else 'NG')
    except:
        break

全部评论

相关推荐

评论
1
2
分享

创作者周榜

更多
牛客网
牛客企业服务