![在这里插入图片描述](https://img-blog.csdnimg.cn/03e45bc38f814286b3813b8c2f71f535.png)
代码
#include <iostream>
#include <string>
using namespace std;
bool check_char(string str) {
int cate1 = 0, cate2 = 0, cate3 = 0, cate4 = 0;
for (int i = 0; i < str.size(); i++) {
if ( str[i] >= 'A' && str[i] <= 'Z')
cate1 = 1;
else if ( str[i] >= 'a' && str[i] <= 'z' )
cate2 = 1;
else if ( str[i] >= '0' && str[i] <= '9' )
cate3 = 1;
else
cate4 = 1;
}
if ( cate1 + cate2 + cate3 + cate4 >= 3)
return true;
else
return false;
}
bool check_substr(string str) {
for (int i = 0; i < str.size(); i++) {
string tmp = str.substr(i, 3);
if (str.find(tmp, i + 3) != str.npos)
return false;
}
return true;
}
int main() {
string s;
while (cin >> s) {
if (s.size() > 8 && check_char(s) && check_substr(s))
cout << "OK" << endl;
else
cout << "NG" << endl;
}
return 0;
}