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面试的专属专栏,我会把自己的解法更新在里面,我会尽量写清楚自己的思路以及多写关键注释,希望对阅读的人有帮助~~~