您的位置:首页 > 其它

密码验证合格程序

2017-02-27 17:41 120 查看
密码要求:

 

1.长度超过8位

  

2.包括大小写字母.数字.其它符号,以上四种至少三种

   

3.不能有相同长度超2的子串重复 

 

说明:长度超过2的子串

输入描述:
一组或多组长度超过2的子符串。每组占一行

输出描述:
如果符合要求输出:OK,否则输出NG

输入例子:
021Abc9000
021Abc9Abc1
021ABC9000
021$bc9000


输出例子:
OK
NG
NG
OK


#include<iostream>

#include<string>

using namespace std;

void checkUserName(string str);

int main(){

    string str;

    while(cin>>str){

        checkUserName(str);

        str="";

    }

    return 0;

}

void checkUserName(string str){

     if(str.size()<=8){

            cout<<"NG"<<endl;

            return;

        }

        int a[4]={0};

        for(int i=0;i<str.size();i++){

           if(str[i]>='a'&&str[i]<='z'){

               a[0]=1;

           } 

           if(str[i]>='A'&&str[i]<='Z'){

               a[1]=1;

           }

           if(str[i]>='0'&&str[i]<='9'){

              a[2]=1;

           }else{

              a[3]=1;

           }        

        }

        if(a[0]+a[1]+a[2]+a[3]<3){

            cout<<"NG"<<endl;

            return;

        }

        for(int k=0;k<str.size()-3;k++){

            for(int p=k+2;p<str.size();p++){

                if(str[p]==str[k]&&str[p+1]==str[k+1]&&str[p+2]==str[k+2]){

                    cout<<"NG"<<endl;

                    return;

                } 

                

            }

            

            

        }

  

      cout<<"OK"<<endl;    

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: