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

密码验证合格程序

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

import sys


def check(line):
    # 长度超过8位
    if len(line) <= 8:
        return False
    # 包括大小写字母.数字.其它符号,以上四种至少三种
    upper, lower, number, other = 0, 0, 0, 0
    for ch in line:
        if ord("a") <= ord(ch) <= ord("z"):
            lower = 1
        elif ord("A") <= ord(ch) <= ord("Z"):
            upper = 1
        elif ord("0") <= ord(ch) <= ord("9"):
            number = 1
        elif ch != " ":
            other = 1
    if upper + lower + number + other < 3:
        return False
    # 不能有长度大于2的包含公共元素字串重复,其实看长度为3的就够了
    s = set()
    for i in range(len(line) - 3):
        if line[i : i + 3] in s:
            return False
        s.add(line[i : i + 3])
    return True


for line in sys.stdin:
    if check(line.strip()):
        print("OK")
    else:
        print("NG")

全部评论

相关推荐

董春花_:真诚无罪,别听评论区那个清华的。按他的逻辑,你有分寸人觉得你是不想来,你积极热情人觉得你太想来,你好骗人就可你养鱼,你不好骗人觉得你服从性不高,合着**做啥都白扯。保持谦逊礼貌与对offer的积极性不才是最正常,也正确的做法么?招聘方的错强加到应聘者身上,***何不食肉糜。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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