HJ20 题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
#题目理解:
#3、不能有长度大于2的包含公共元素的子串重复
#第一次读这句话的时候感觉真的好绕呀!看了一下别人的理解才明白,
#其实就是不能有长度大于2的相同子串。
#感觉【包含公共元素的子串重复】这部分有点问题,人家都【重复】了,
#当然就包含了公共元素了呀,不仅是包含公共元素,而且互为公共元素,因为都相等了
#检查长度函数
def checklen(a):
if len(a)>8:
return True
else:
return False
#检查符号种数函数
def checknum(a):
flag1=flag2=flag3=flag4=0
for i in a:
if "A"<=i<="Z":
flag1=1
elif "a"<=i<"z":
flag2=1
elif "0"<=i<="9":
flag3=1
else:
flag4=1
if flag1+flag2+flag3+flag4>=3:
return True
else:
return False
#检查子串函数
def checksub(a):
for i in range(len(a)-3):
if a.count(a[i:i+3])>1:
return False
return True
while True:
try:
a=input()
if checklen(a) and checknum(a) and checksub(a):
print("OK")
else:
print("NG")
except:
break
#华为##华为od##华为od机试##华为机试#华为HJ103所有解法 文章被收录于专栏
这是我准备华为od面试的专属专栏,我会把自己的解法更新在里面,我会尽量写清楚自己的思路以及多写关键注释,希望对阅读的人有帮助~~~