0分求救

B3843 [GESP202306 三级] 密码合规

yetao @ 2024-11-14 14:49:12

#include<bits/stdc++.h>
using namespace std;
bool pd(string s){
    int l=s.size();
    if(l<6||l>12){
        return 0;
    }
    int b[4]={0};
    for(int i=0;i<l;i++){
        if(s[i]>='a'&&s[i]<='z'){
            b[0]++;
        }else if(s[i]>='A'&&s[i]<='Z'){
            b[1]++;
        }else if(s[i]>='0'&&s[i]<='9'){
            b[2]++;
        }else if(s[i]=='!'||s[i]=='@'||s[i]=='#'||s[i]=='$'){
            b[3]++;
        }else{
            return 0;
        }
    }
    if(b[3]==0){
        return 0;
    }
    int a=0;
    for(int i=0;i<3;i++){
        if(b[i]!=0){
            a++;
        }
    }
    if(a<2){
        return 0;
    }
    return 1;
}
string s,t;
int main(){
    cin>>s;
    for(int i=0;i<s.size();i++){
        if(s[i]==','){
            if(pd(t)){
                cout<<t<<endl;
                t="";
            }
        }
        else{
            t+=s[i];
        }
    }
    return 0;
}

|