题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
def valid(s): def step1(s): if len(s) <= 8:return False return True if not step1(s):return "NG" def step2(s): ans = 0 sletter = set(chr(97 + i) for i in range(26)) lletter = set(chr(ord("A") + i) for i in range(26)) num = set('0123456789') s = list(s) for i in range(len(s)): if s[i] in sletter: s[i] = 1 elif s[i] in lletter: s[i] = 2 elif s[i] in num: s[i] = 3 else: s[i] = 4 if len(set(s)) < 3: return False return True if not step2(s):return "NG" def step3(s): n = len(s) for length in range(3, n + 1): for i in range(n - length + 1):#枚举所有3个以上的 substring = s[i:i+length] for j in range(i + 1, n - length + 1):#从这个字符往后枚举 if substring == s[j:j+length]: #这个字符重复过了 return False return True if not step3(s): return "NG" return "OK" while True: try: print(valid(input())) except: break