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

密码验证合格程序

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

#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
#include <cstring>
using namespace std;


bool find(string str,vector<string> substr)
{
    if(substr.size()==0)
        return false;
    for(int i = 0; i < substr.size();i++)
    {
        if(str == substr[i])
            return true;
    }
    return false;

}

int main() {
    vector<string> input;//存储输入内容
    string temp;
    while(getline(cin, temp))
    {
        input.push_back(temp);
    }
    for(int i = 0;i<input.size();i++)
    {
        vector<bool> style(4,false);//是否使用四种字符
        vector<string> substr;//存储大小为三的子串
        int count = 0;
        if(input[i].size()<=8)
        {
            cout<<"NG"<<endl;
            continue;
        }
        for(int t = 0;t<input[i].size();t++)
        {
            if(input[i][t]>=48&&input[i][t]<=57)
                {
                    style[0] = true;
                    continue;
                }
            if(input[i][t]>=65&&input[i][t]<=90)
            {
                style[1] = true;
                continue;
            }
                
            if(input[i][t]>=97&&input[i][t]<=122)
            {
                style[2] = true;
                continue;
            }
            style[3] = true;    
        }
        for(auto i:style)
        {
            if(i)
                count++;
        }
        if(count<3)
        {
            cout<<"NG"<<endl;
            continue;
        }
        bool error = true;
        for(int j = 0; j < input[i].size()-2;j++)
        {
            string str("");
            str = str+input[i][j]+input[i][j+1]+input[i][j+2];
            if(find(str,substr))
            {
                error = false;
                break;
            }
            else 
            {
                substr.push_back(str);
            }  
        }
        if(error == false)
        {
            cout<<"NG"<<endl;
            continue;
        }
        else 
        {
            cout<<"OK"<<endl;
            continue;
        }
    

        


    }
        

}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

Z_eus:别打招呼直接发你的优势
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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