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

密码验证合格程序

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

#include<iostream>
#include<string>
using namespace std;

int main() {
    string s;
    while (cin >> s) {
        if (s.length() <= 8) { //长度不超过不可行
            cout << "NG" << endl;
            continue;
        }
        int flag[4] = {0};
        for (int i  = 0; i < s.length(); i++) {
            if (s[i] >= 'A' && s[i] <= 'Z') //大写字母
                flag[0] = 1;
            else if (s[i] >= 'a' && s[i] <= 'z') //小写字母
                flag[1] = 1;
            else if (s[i] >= '0' && s[i] <= '9') //数字
                flag[2] = 1;
            else  //其他符号
                flag[3] = 1;
        }
        if (flag[0] + flag[1] + flag[2] + flag[3] < 3) { //符号少于三种
            cout << "NG" << endl;
            continue;
        }
        bool repute = false; //记录重复子串
        for (int i = 0; i <= s.length() - 6;
                i++) //遍历检查是否有长度为3的相同的字串
            for (int j = i + 3; j < s.length(); j++)
                if (s.substr(i, 3) == s.substr(j, 3)) {
                    repute = true;
                    break;
                }
        if (repute) //有重复
            cout << "NG" << endl;
        else
            cout << "OK" << endl;
    }
    return 0;
}

看似很难,实则很简单。

全部评论

相关推荐

冰皮月饼_FLORRIEEE:你是准备投产品嘛?可以重新整理一下实习的bulletpoint,侧重描述你的工作所带来的结果收益,不要只写泛泛的内容(比如改写通过xx数据分析,提升xx),产品的价值并不在处理和分析数据的过程
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务