题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
#include <iostream>
using namespace std;
int main() {
string str;
while(cin>>str){
int a=0,b=0,c=0,d=0,k=0;
if(str.size()<=8){
cout<<"NG"<<endl;
continue;
}
bool flag=true;
for(int i=0;i<str.size();i++){
if(str[i]>='a'&&str[i]<='z'){
if(!a)k++;
a++;
}
else if(str[i]>='A'&&str[i]<='Z'){
if(!b)k++;
b++;
}
else if(str[i]>='0'&&str[i]<='9'){
if(!c)k++;
c++;
}
else {
if(!d)k++;
d++;
}
for(int j=i+3;j<str.size();j++){
while(j<str.size()&&str[i]!=str[j])j++;
int l=i,r=j,num=0;
while(r<str.size()&&str[l]==str[r]){
//cout<<l<<" "<<r<<endl;
//cout<<str[l]<<" "<<str[r]<<endl;
l++,r++;
num++;
}
if(num>=3){
flag=false;
break;
}
}
if(!flag){
break;
}
}
if(!flag){
cout<<"NG"<<endl;
continue;
}
if(k<3){
cout<<"NG"<<endl;
continue;
}
cout<<"OK"<<endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")