HJ20 - 密码验证
题目
代码
#include <iostream>
#include <vector>
#include <set>
using namespace std;
bool strIsPwd(string s){
int n = s.size();
if(n < 8){
return false;
}
int f1 = 0, f2 = 0, f3 = 0, f4 = 0;
int count = 0;
int flag = 0;
for(int i = 0; i < n; i++){
if(s[i] >= 'A' && s[i] <= 'Z'){
f1++;
if(f1 == 1){
count++;
}
}else if(s[i] >= 'a' && s[i] <= 'z'){
f2++;
if(f2 == 1){
count++;
}
}else if(s[i] >= '0' && s[i] <= '9'){
f3++;
if(f3 == 1){
count++;
}
}else if(s[i] != ' ' && s[i] !='/n'){
f4++;
if(f4 == 1){
count++;
}
}
if(count >= 3){
flag = 1;
break;
}
}
if(!flag){
return false;
}
set<string> list;
string str;
for(int i = 0; i <= n - 3; i++){
str = s.substr(i, 3);
if(list.count(str)){
return false;
}else{
list.insert(str);
}
}
return true;
}
int main(){
string str;
while(cin>>str){
bool res;
res = strIsPwd(str);
if(res){
cout<<"OK"<<endl;
}else{
cout<<"NG"<<endl;
}
}
return 0;
}
|