题解 | #密码强度等级#
密码强度等级
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; }