题解 | #密码强度等级#

密码强度等级

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

import re
import sys

for line in sys.stdin:
    a = line.strip()
    score = 0
    length = len(a)
    if length <= 4:
        score += 5
    elif length < 8:
        score += 10
    else:
        score += 25
    
    upper_letter_count = len(re.findall('[A-Z]', a))
    lower_letter_count = len(re.findall('[a-z]', a))
    if upper_letter_count + lower_letter_count == 0:
        pass
    elif upper_letter_count == 0 or lower_letter_count == 0:
        score += 10
    else:
        score += 20
    
    num = len(re.findall('[0-9]', a))
    if num == 0:
        pass
    elif num == 1:
        score += 10
    else:
        score += 20
    
    ch = len(re.findall('[^\s0-9a-zA-Z]', a))
    if ch == 0:
        pass
    elif ch == 1:
        score += 10
    else:
        score += 25
    
    if all([upper_letter_count, lower_letter_count, num, ch]):
        score += 5
    elif all([upper_letter_count + lower_letter_count, num, ch]):
        score += 3
    elif all([upper_letter_count + lower_letter_count, num]):
        score += 2
    
    if score >= 90:
        print('VERY_SECURE')
    elif score >= 80:
        print('SECURE')
    elif score >= 70:
        print('VERY_STRONG')
    elif score >= 60:
        print('STRONG')
    elif score >= 50:
        print('AVERAGE')
    elif score >= 25:
        print('WEAK')
    elif score >= 0:
        print('VERY_WEAK')

全部评论

相关推荐

04-28 15:42
郑州大学 C++
找工作勤劳小蜜蜂:网易这几个月在大面积裁员,外包岗全退,今年网易收缩严重,建议慎重考虑网易
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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