华为od真题题解 | 密码验证合格程序
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
#include <iostream>
#include<bits/stdc++.h>
#include <unordered_map>
using namespace std;
string rightcode(string code){
int len = code.size();
int a[4] = {0};
int count = 0;
int num = 0;
for (int i = 0;i<len;i++) {
if (code[i] >= 'A'&& code[i]<='Z') {
a[0]= 1;
}else if (code[i]>= 'a' && code[i] <= 'z') {
a[1]= 1;
}else if(code[i]>='0' && code[i] <= '9') {
a[2] =1;
}else {
a[3] =1;
}
}
for (int i = 0; i < 4; i++)
{
if (a[i] == 1)
{
count++;
}
}
for (int i = 0;i<=len-6;i++) {
for(int j =i+3;j<=len-3;j++){
if(code[i] == code[j] && code[i+1] == code[j+1] && code[i+2] == code[j+2] )
num++;
if(num != 0){
break;
}
if(num != 0){
break;
}
}
}
if ((len >= 9) && (count >= 3) && (num == 0)){
return "OK";
}else {
return "NG";
}
}
int main() {
string code;
string s;
vector<string> res;
unordered_map<string,int> mp;
while (getline(cin,code)) {
cout<<rightcode(code)<<endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")