小结
这道题,投机取巧。 只判断了,三位数是否有重复的;
using namespace std;
// 48 -57 (0-9)
// 65-90 (A-Z)
// 97-122
int main()
{
const int judge_number = 1;
const int judge_daxie= 2;
const int judge_xiaoxie = 3;
const int judge_symbool = 4;
string in_str;
while(cin>>in_str)
{
bool isok = true;
set<int> int_set;
if(in_str.size()<=8)
{
cout<<"NG"<<endl;
break;
}
if(in_str.size()>8)
{
for(auto &t:in_str)
{
if(t>=48&& t<=57)
{
int_set.insert(judge_number);
}
else if(t>=65&& t<=90)
{
int_set.insert(judge_daxie);
}
else if(t>=97&& t<=122)
{
int_set.insert(judge_xiaoxie);
}
else
{
int_set.insert(judge_symbool);
}
}
}
if(int_set.size()>=3)
{
for(int i =0;i<in_str.size()-3;i++)
{
string temp = in_str.substr(i,3);
string str_s =in_str;
str_s= str_s.erase(i, 3);
size_t pos = str_s.find(temp);
if(pos!=str_s.npos)
{
cout<<"NG"<<endl;
isok = false;
break;
}
}
if(isok)
{
cout<<"OK"<<endl;
}
}
else
{
cout<<"NG"<<endl;
}
}
return 0;
}