华为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")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务