HJ20 密码验证合格程序


#include
using namespace std;
string Password(string str) {
int len = str.size();
int a[4] = {0};
int count = 0;
int num = 0;//重复子串对数
for (int i = 0; i < len; i++) {
if (str[i] >= 'A' && str[i] <= 'Z') a[0] = 1;
else if (str[i] >= 'a' && str[i] <= 'z') a[1] = 1;
else if (str[i] >= '0' && str[i] <= '9') a[2] = 1;
else a[3] = 1;

}
for (int i = 0; i < 4; i++) {
if (a[i] == 1) count++;
}
for (int i = 0; i <= len - 6; i++ ) {
//两个循环相当于有两个框第一个框从0开始大小为3,
//第二个框 从3开始大小为3 第二个框若不同则右移一格在比,
//若到头,则第一个框右移一格同时第二个框从4开始
for (int j = i + 3; j <= len - 3; j++) {
if (str[i] == str[j] && str[i + 1] == str[j + 1] && str[i + 2] == str[j + 2]) {

// cout< num++;
}
if (num != 0) break;
}
if (num != 0) break;
}
// cout< if (len > 8 && count > 2 && num == 0) return "OK";
else if (len < 8 || count < 2 || num > 0) return "NG";
else return "sd";
}
int main() {
string str;
while (cin >> str) {
cout << Password(str) << endl;
}
return 0;
}