题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
#include <bits/stdc++.h>
#include <cctype>
#include <iostream>
using namespace std;
bool is_str(string s) {
int ans = 0;
for (int i = 0; i <= s.size() - 6; i ++ ) {
for (int j = i + 3; j <= s.size() - 3; j ++ ) {
if ((s[i] == s[j]) && (s[i + 1] == s[j + 1]) &&
(s[i + 2] == s[j + 2])) ans++;
if (ans != 0) break;
}
}
return ans == 0;
}
int main() {
string s = "";
while (cin >> s) {
int i = 0, s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0;
if (s.size() < 8) {
puts("NG");
continue;
}
for (char c : s) {
if (c >= 'a' && c <= 'z')s1 = 1;
else if (c >= '0' && c <= '9')s2 = 1;
else if (c >= 'A' && c <= 'Z')s3 = 1;
else if (c == ' ' || c == '\n') s5 = 1;
else s4 = 1;
}
if (s1 + s2 + s3 + s4 < 3) {
puts("NG");
continue;
}
if (s5 == 1) {
puts("NG");
continue;
}
if (is_str(s))puts("OK");
else puts("NG");
}
}
// 64 位输出请用 printf("%lld")
查看21道真题和解析