题解 | #密码验证合格程序#
密码验证合格程序
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;
}
}
}
查看21道真题和解析

