题解 | #密码验证合格程序#
密码验证合格程序
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
这道题主要是看要求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
【牛客站内】华为机试题—中等 文章被收录于专栏
【牛客站内】华为机试题练习记录