题解 | #密码验证合格程序#

密码验证合格程序

https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841

import sys

def check_elem(pwd):
    checks = [0, 0, 0, 0]
    for c in pwd:
        if c.isupper():
            checks[0] = 1

        elif c.islower():
            checks[1] = 1

        elif c.isdigit():
            checks[2] = 1
        else:
            checks[3] = 1
    s = sum(checks)
    if s < 3:
        return "NG"
    return "OK"


def check_sub_s_duplicated(pwd):
    for i in range(len(pwd) - 2):
        if i < 3:
            if pwd[i:i + 3] in pwd[i + 3:]:
                return "NG"

        elif i >= 3:
            if pwd[i:i + 3] in pwd[:i - 1] or pwd[i:i + 3] in pwd[i + 3:]:
                return "NG"

    return "OK"


def validate(pwd):
    if len(pwd) <= 8:
        return "NG"

    if check_sub_s_duplicated(pwd) == "NG":
        return "NG"
    if check_elem(pwd) == "NG":
        return "NG"

    return "OK"


for line in sys.stdin:
    a = line.strip("\n")
    print(validate(a))

全部评论

相关推荐

09-24 18:30
已编辑
长春工业大学 产品经理
小肥罗:HR就是好人的缩写哈哈哈哈
点赞 评论 收藏
分享
09-29 16:59
已编辑
门头沟学院 Java
牛客96609213...:疯狂背刺,之前还明确设置截止日期,还有笔试,现在一帮人卡在复筛,他反而一边开启扩招,还给扩招的免笔试,真服了,你好歹先把复筛中的给处理了再说
投递大疆等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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