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

密码验证合格程序

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

全部评论

相关推荐

码农索隆:单休一个月少休息4天,一年就是48天,平时节假日,别人3天假期,单休的两天
点赞 评论 收藏
分享
06-18 13:28
已编辑
门头沟学院 Web前端
爱睡觉的冰箱哥:《给予你300的工资》,阴的没边了
点赞 评论 收藏
分享
07-07 11:33
江南大学 Java
已经在暑假实习了&nbsp;,没有明确说有hc,纠结实习到八月份会不会有点影响秋招毕竟感觉今年好多提前批
程序员小白条:92的话准备提前批,其他没必要,没面试机会的,而且你要准备充分,尤其八股和算法题
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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