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

密码验证合格程序

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

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 18:05
哈哈哈哈哈感觉朋友找工作的已经疯掉了,直接上图
码农索隆:真老板娘:“我嘞个去,这不我当年的套路吗
点赞 评论 收藏
分享
06-10 23:36
已编辑
首都经济贸易大学 C++
点赞 评论 收藏
分享
06-22 10:41
赣东学院 Java
程序员小白条:?周六晚上投,这是什么操作,专门找996起步的吗
点赞 评论 收藏
分享
码农索隆:有点耳熟,你们是我教过最差的一届
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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