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

全部评论

相关推荐

05-12 16:04
已编辑
江西财经大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务