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

密码验证合格程序

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

'''
这道题主要是看要求3的解决方法
我们可以利用如下特性:

s='abcdabcd'
print(s.split('abc'))

>>>['', 'd', 'd'] 即len(s.split('abc'))=3
'''

def check(n): # 定义函数用于检测该密码是否符合要求
# 长度要求
    if len(n)<=8:
        return False
# 种类要求 
    dx=0
    xx=0
    sz=0
    other=0
    for k in n:
        if k.isupper():
            dx=1
        elif k.islower():
            xx=1
        elif k.isdigit():
            sz=1
        else:
            other=1
    if dx+xx+sz+other<3:
        return False
# 无子串重复要求
    for w in range(len(n)-2):
        if len(n.split(n[w:w+3]))>=3:
            return False
    return True

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

【牛客站内】华为机试题练习记录

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务