题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
#include <iostream> #include <string> #include <unordered_set> using namespace std; int main() { string str; while(cin >> str){ int res = 1; if(str.length() <= 8){ res = 0; } else{ int numVar = 0; int Var[4] = {0};//四种字符类型的个数(q数字,1大写字母,2小写字母,3其他) for(int i = 0; i < str.length(); i++){ if(str[i] >= '0' && str[i] <= '9') Var[0]++; else if(str[i] >= 'A' && str[i] <= 'Z') Var[1]++; else if(str[i] >= 'a' && str[i] <= 'z') Var[2]++; else Var[3]++; } for(int i = 0; i < 4; i++){ if(Var[i]) numVar++; } if(numVar < 3){ res = 0; } else{ int left = 0; unordered_set<string> Set; while(left + 2 <= str.length()){ string tmp = str.substr(left, 3); if(Set.count(tmp) != 0){ res = 0; break; } else{ Set.insert(tmp); left++; } } } } if(res == 1) cout << "OK" << endl; else cout << "NG" << endl; } return 0; }