题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
#include <iostream> using namespace std; #include <string> int main() { string s; getline(cin, s); int len = s.size(); int arr[4] = { 0 }; int num = 0; int count = 0; for (int i = 0; i < len; i++) { if (s[i] >= 65 && s[i] <= 90) { arr[0] = 1; } else if (s[i] >= 97 && s[i] <= 122) { arr[1] = 1; } else if (s[i] >= '0' && s[i] <= '9') { arr[2] = 1; } else { arr[3] = 1; } } for (int i = 0; i < 4; i++) { if (arr[i] == 1) { count++; } } /*假设字符串是"abc021987aab"开始是进行"abc"与"021"之间判断,也就是错开一个进行判断 而该整体循环末尾是"7aa"与"aab"进行判断 */ for (int i = 0; i <= len - 4; i++) { for (int j = i + 1; j < len - 3; j++) { if (s[i] == s[j] && s[i + 1] == s[j + 1] && s[i + 2] == s[j + 2]) { num++; } if (num > 0) { break; } } if (num > 0) { break; } } if (len >= 8 && count >= 3 && num == 0) { cout << "OK" << endl; } else { { cout << "NG" << endl; } } }