题解 | #密码强度等级#
密码强度等级
https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361
#include <asm-generic/errno.h> #include <bits/stdc++.h> #include <string> using namespace std; int jl(string m) { int sz = 0, fh = 0, up = 0, min = 0, zm = 0; for (char i : m) { if ((i >= 'a' && i <= 'z') || (i >= 'A' && i <= 'Z')) {//如果是字母 if (i >= 'a' && i <= 'z') { //小写 min++; } else { //大写 up++; } zm++; } else if (i >= '0' && i <= '9') {//如果是数字 sz++; } else { //如果是符号 fh++; } } if (up != 0 && min != 0 && sz != 0 && fh != 0) { return 5; } else if (zm != 0 && fh != 0 && sz != 0) { return 3; } else if (sz != 0 && zm != 0) { return 2; } return 0; } //符号 int fh(string m) { int fh = 0; for (char i : m) { if ((i >= 'a' && i <= 'z') || (i >= 'A' && i <= 'Z')) { } else if (i >= '0' && i <= '9') { } else { //如果是符号 fh++; } } if (fh == 0) { return 0; } else if (fh == 1) { return 10; } else if (fh > 1) { return 25; } return 0; } //密码数字 int sz(string m) { int n = 0; for (char i : m) { if (i >= '0' && i <= '9') {//如果当前字符是数字 n++; } } if (n == 0) { return 0; } else if (n == 1) { return 10; } else { return 20; } } //密码长度 int len(string m) { if (m.size() <= 4) { return 5; } else if (m.size() >= 5 && m.size() <= 7) { return 10; } else { return 25; } } //密码字母 int zm(string m) { int up = 0; //大写 int min = 0; //小写 for (char i : m) { if (i >= 'a' && i <= 'z') { //小写 min++; } else if (i >= 'A' && i <= 'Z') { //大写 up++; } } if (up == 0 && min == 0) { //没有字母 return 0; } else if (up == 0 || min == 0) { //没有大写或小写 return 10; } else { //都有 return 20; } } string pf(int fen) { if (fen >= 90) { return "VERY_SECURE"; } else if (fen <= 89 && fen >= 80) { return "SECURE"; } else if (fen <= 79 && fen >= 70) { return "VERY_STRONG"; } else if (fen <= 69 && fen >= 60) { return "STRONG"; } else if (fen <= 59 && fen >= 50) { return "AVERAGE"; } else if (fen <= 49 && fen >= 25) { return "WEAK"; } else if (fen <= 24 && fen >= 0) { return "VERY_WEAK"; } return""; } int main() { string m; cin >> m; int fen = 0; fen += len(m); fen += zm(m); fen += sz(m); fen += fh(m); fen += jl(m); // cout << fen<<endl; cout << pf(fen); }