C++ 密码验证合格程序

密码验证合格程序

http://www.nowcoder.com/questionTerminal/184edec193864f0985ad2684fbc86841

#include <iostream>
#include <string>

using namespace std;

int main(int argc, char *argv[])
{
    string str;

    while(cin >> str)
    {
        if(str.size() < 9)
        {
            cout << "NG" << endl;
            continue;
        }
        unsigned flag1 = 0, flag2 = 0, flag3 = 0, flag4 = 0;
        bool flag = false;
        for(auto const &c: str)
        {
            if(c >= 'a' && c <= 'z') flag1 = 1;
            else if(c >= 'A' && c <= 'Z') flag2 = 1;
            else if(c >= '0' && c <= '9') flag3 = 1;
            else flag4 = 1;
            if(flag1 + flag2 + flag3 + flag4 > 2)
            {
                flag = true;
                break;
            }
        }
        if(!flag)
        {
            cout << "NG" << endl;
            continue;
        }
        flag = false;
        string subs;
        for(auto it = str.begin(); it < str.end() - 6; ++it)
        {
            subs = str.substr(it - str.begin(), 3);
            auto pos = str.find(subs, it - str.begin() + 3);
            if(pos != string :: npos)
            {
                flag = true;
                continue;
            }
        }
        if(flag) cout << "NG" << endl;
        else cout << "OK" << endl;
    }

    return 0;
}
全部评论

相关推荐

2025-11-04 19:05
已编辑
东莞城市学院 单片机
不知道怎么取名字_:你这个要实习两年?哪有这么久的,感觉就是即使你毕业了,但还按实习的话,是不是不用给你缴社保公积金啥的
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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