题解 | #密码强度等级#

密码强度等级

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

感觉条件有点多,有点乱,望大神指教,怎么改进
sco_list = [90, 80, 70, 60, 50, 25, 0]
res_list = [
    "VERY_SECURE",
    "SECURE",
    "VERY_STRONG",
    "STRONG",
    "AVERAGE",
    "WEAK",
    "VERY_WEAK",
]
s = input()
sco = 0
#长度
if len(s) <= 4:
    sco += 5
if  5 <= len(s) <= 7:
    sco += 10
if len(s) >= 8:
    sco += 25
#字母
flag1 = 0 #有无字母
flag2 = 0 #有无大写
flag3 = 0 #有无小写
flag4 = 0 #数字个数
flag5 = 0 #符号个数
for x in s:
    if x.isalpha():
        flag1 = 1
    if x.isupper():
        flag2 = 1
    if x.islower():
        flag3 = 1
    if x.isdigit():
        flag4 += 1
    if not x.isalnum():
        flag5 += 1
if (s.upper() == s or s.lower() == s )and flag1 == 1:
    flag1 = 2
if flag1 == 2:
    sco += 10
if flag2 + flag3 == 2:
    sco += 20
if flag1 == 0:
    sco += 0
#数字
if flag4 == 0:
    sco += 0
elif flag4 == 1:
    sco += 10
else:
    sco += 20
#符号
if flag5 == 0:
    sco += 0
elif flag5 == 1:
    sco += 10
else:
    sco += 25
#奖励
if flag2 + flag3 == 2 and flag4 >= 1 and flag5 >= 1:
    sco +=5
if (s.upper() == s or s.lower() == s )and flag1 == 1 and flag4 >= 1 and flag5 >= 1:
    sco +=3
if (s.upper() == s or s.lower() == s )and flag1 == 1 and flag4 >= 1 and flag5 == 0:
    sco += 2
 
index = 0
for i in range(len(sco_list)):
    if sco >= sco_list[i]:
        index = i
        break
print(res_list[index])

全部评论

相关推荐

葬爱~冷少:我当时都是上午刷力扣,下午背八股,有活给我先别急,没活就干自己的事情
点赞 评论 收藏
分享
那么好了好了:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务