爆零求调

B3843 [GESP202306 三级] 密码合规

imJTya @ 2024-06-24 15:23:54

#include <iostream>
#include <string>
using namespace std;
int main() {
    string str; cin >> str;
    str=str+',';
    string tmp;
    bool flag=true, vis[5]={false, false, false, false, false};
    int cnt=0;
    for(int i=0;i<str.size();i++){
        if(str[i]==','){
            if(cnt>=2&&vis[3]==true&&tmp.size()>=6&&tmp.size()<=12&&flag!=false){
                cout << tmp << endl;
                tmp="";
                flag=true;
                for(int i=0;i<4;i++){
                    vis[i]=false;
                }
                cnt=0;
            }
            continue;
        }
        else{
            if(!((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')||(str[i]>='0'&&str[i]<='9')||str[i]=='!'||str[i]=='@'||str[i]=='#'||str[i]=='$')){
                flag=false;
            }
            if((str[i]>='a'&&str[i]<='z')&&vis[0]==false){
                cnt++;
                vis[0]=true;
            }
            if((str[i]>='A'&&str[i]<='Z')&&vis[1]==false){
                cnt++;
                vis[1]=true;
            }
            if((str[i]>='0'&&str[i]<='9')&&vis[2]==false){
                cnt++;
                vis[2]=true;
            }
            if((str[i]=='!'||str[i]=='@'||str[i]=='#'||str[i]=='$')){
                vis[3]=true;
            }
        }
        tmp=tmp+str[i];
    }
    cout << endl;
    return 0;
}

rt


|