密码验证合格程序(HJ20)

一:解题思路

二:完整代码示例 (C++版和Java版)

C++代码:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main()
{
    string str = "";

    while (cin >> str)
    {
        vector<int> classes(4,0);
        if (str.size() <= 8)
            cout << "NG" << endl;
        else
        {
            for (int i = 0; i < str.size(); i++)
            {
                if (str[i] >= 'A' && str[i] <= 'Z') classes[0] = 1;
                else if (str[i] >= 'a' && str[i] <= 'z') classes[1] = 1;
                else if (str[i] >= '0' && str[i] <= '9') classes[2] = 1;
                else classes[3] = 1;
            }
            int counts = 0;
            for (int i = 0; i < classes.size(); i++)
            {
                counts += classes[i];
            }
            if (counts < 3)
                cout << "NG" << endl;
            else
            {
                int found = 0;

                for (int i = 0; i < str.size(); i++)
                {
                    string sub_str = str.substr(i, 3);
                    found = str.find(sub_str, i + 3);
                    if (found != string::npos)
                        break;
                }
                if (found == string::npos)
                    cout << "OK" << endl;
                else
                    cout << "NG" << endl;
            }
        }
    }

    return 0;
}

 

posted @ 2020-08-07 16:23  repinkply  阅读(384)  评论(0)    收藏  举报