题解 | #密码强度等级#

密码强度等级

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

#include <bits/stdc++.h>
using namespace std;

int main() {
    string str;
    getline(cin, str);
    int score = 0;


    int l = str.length();
    if (l <= 4) score += 5;
    else if (l >= 8) score += 25;
    else score += 10;


    int up = 0, low = 0;
    for (int i = 0; i < l; i++) {
        if (isupper(str[i])) up++;
        if (islower(str[i])) low++;
    }
    if (up == 0 && low == 0) score += 0;
    else if (up == 0 || low == 0) {
        score += 10;
    } else if (up != 0 && low != 0) {
        score += 20;
    }


    int d = 0;
    for (int i = 0; i < l; i++) {
        if (isdigit(str[i])) d++;
    }
    if (d == 0) score += 0;
    else if (d == 1) score += 10;
    else if (d >= 1) score += 20;

    int s = 0;
    for (int i = 0; i < l; i++) {
        if (ispunct(str[i])) s++;
    }
    if (s == 0) score += 0;
    else if (s == 1) score += 10;
    else if (s >= 1) score += 25;


    if (up > 0 && low > 0 && d > 0 && s > 0) score += 5;
    else if (up + low > 0 && d > 0 && s > 0) score += 3;
    else if (up + low > 0 && d > 0) score += 2;

    string res;
    if (score >= 90) res = "VERY_SECURE" ;
    else if (score >= 80) res = "SECURE" ;
    else if (score >= 70) res = "VERY_STRONG" ;
    else if (score >= 60) res = "STRONG" ;
    else if (score >= 50) res = "AVERAGE" ;
    else if (score >= 25) res = "WEAK" ;
    else if (score <25) res = "VERY_WEAK" ;

    cout << res;
}

全部评论

相关推荐

05-01 22:41
中南大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务