题解 | #密码强度等级#

密码强度等级

http://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361

#小白做题  写这个题的时候感觉奖励逻辑部分有问题,参考答案也有点问题,求大神指教
while True:
    try:
        mima = input()
        count = 0
        if len(mima) <= 4:
            count += 5
        elif 4 < len(mima) < 8:
            count += 10
        else:
            count += 25
#字母判断
        xiaoxie = []
        daxie = []
        for i in mima:
            if i.islower():
                xiaoxie.append(i)
            elif i.isupper():
                daxie.append(i)
        if len(xiaoxie) + len(daxie) == 0:
             count += 0
        elif (len(xiaoxie) > 0 and len(daxie) == 0) or (len(daxie) > 0 and len(xiaoxie) == 0):
            count += 10
        elif len(xiaoxie) > 0 and len(daxie) > 0:
            count += 20
 #数字判断
        shuzi = []
        for i in mima:
            if i.isdigit():
                shuzi.append(i)
        if len(shuzi) == 0:
            count += 0
        elif len(shuzi) == 1:
            count += 10
        elif len(shuzi) > 1:
            count += 20
 #符号判断    
        fuhao = []
        fuhao1 = '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
        for i in mima:
            if i in fuhao1:
                fuhao.append(i)
        if len(fuhao) == 0:
            count += 0
        elif len(fuhao) == 1:
            count += 10
        elif len(fuhao) > 1:
            count += 25
  #奖励判断 该部分有问题 根据公布的答案也不行,python答案中最多浏览那个,他是把+5那个选项放到了前面 所以把28示例测试过去了,
#但是把他的顺序调整后,在28也是不能通过。
        if (len(xiaoxie) + len(daxie)) > 0 and len(shuzi) > 0 and len(fuhao) == 0:
            count += 2
        elif (len(xiaoxie) + len(daxie)) > 0 and len(shuzi) > 0 and len(fuhao) > 0:
            count += 3
        elif len(xiaoxie) > 0 and len(daxie) > 0 and len(shuzi) > 0 and len(fuhao) > 0:
            count += 5
#这一部分是我最早写的,在29示例出现问题,但是29示例我在jupyter通过了,第二个符号是1就通过,这个是示例里面的,
#但是把第二个符号改为小写l就出问题,牛客这个29示例应该是1而不是小写字母l。
#         if len(xiaoxie) + len(shuzi) == len(mima) or len(daxie) + len(shuzi) == len(mima) or len(daxie) + len(xiaoxie) + len(shuzi) == len(mima):
#             count += 2
#         elif len(xiaoxie) + len(shuzi) + len(fuhao) == len(mima) or len(daxie) + len(shuzi) + len(fuhao) == len(mima):
#             count += 3
#         elif len(xiaoxie) + len(daxie) + len(shuzi) + len(fuhao) == len(mima):
#             count += 5
            
        if count >= 90:
            print('VERY_SECURE')
        elif 80 <= count < 90:
            print('SECURE')
        elif 70 <= count < 80:
            print('VERY_STRONG')
        elif 60 <= count < 70:
            print('STRONG')
        elif 50 <= count < 60:
            print('AVERAGE')
        elif 25 <= count < 50:
            print('WEAK')
        elif 0 <= count < 25:
            print('VERY_WEAK')
    except:
        break
全部评论

相关推荐

暴风雨来了:这不就是力扣的算法题吗?
点赞 评论 收藏
分享
挣K存W养DOG:接好运
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务