题解 | #密码验证合格程序#

密码验证合格程序

https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841

#include <iostream>
using namespace std;

int mul(string s)
{
    if(s.size() <= 8){
        return -1;
    }
    for(int i=0;i<s.size();i++){
        for(int j=i+1;j<s.size();j++){
            if(s.substr(i,3) == s.substr(j,3)){
                return -1;
            }
        }
    }
    return 0;
}

int is(int a)
{
    if(a != 0){
        a =1;
    }else {
        a =0;
    }
    return a;
}

int kinds(int a,int b,int c,int d)
{
    a=is(a);
    b=is(b);
    c=is(c);
    d=is(d);
    if(a + b + c +d >= 3){
        return 0;
    }else{
        return -1;
    }
    return 0;
}

int deal_str(string s)
{
    int a=0;
    int b=0;
    int c=0;
    int d=0;
    for(auto e : s){
        if('0' <= e && e <= '9'){
            a++;
        }else if('a' <= e && e <= 'z'){
            b++;
        }else if('A' <= e && e <= 'Z'){
            c++;
        }else if(e != ' ' && e != '\n'){
            d++;
        }
    }
    int ret = kinds(a,b,c,d);
    int ret0 = mul(s);
    if(ret == 0 && ret0 == 0){
        return 0;
    }else{
        return -1;
    }
    return 0;
}

int main() {
    string s;
    while(getline(cin,s)){
        int ret = deal_str(s);
        if(ret == 0){
            cout << "OK" << endl;
        }else{
            cout << "NG" << endl;
        }
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务