家人们谁懂啊,0分,玄关

B3843 [GESP202306 三级] 密码合规

TNT_666 @ 2024-08-30 21:27:42

样例过,自己造了也过

#include<bits/stdc++.h>
using namespace std;
char a[105];
int s,d,x,f,b,lena,flg,c; 
int main(){
    cin>>a;
    lena=strlen(a);
    for(int i=0;i<=lena;i++){
        if(a[i]>='0'&&a[i]<='9')s=1,c++;
        else if(a[i]>='a'&&a[i]<='z')x=1,c++;
        else if(a[i]>='A'&&a[i]<='Z')d=1,c++;
        else if(a[i]=='!'||a[i]=='@'||a[i]=='#'||a[i]=='$')f=1,c++;
        else if(a[i]==','){
            if(c<6||c>12){s=0,d=0,x=0,f=0,b=0,c=0,flg=0;continue;}
            if(s&&x||s&&d||x&&d)b=1;
            else{s=0,d=0,x=0,f=0,b=0,c=0,flg=0;continue;}
            if(b&&f&&flg!=-1){
                for(int j=i-c;j<i;j++)cout<<a[j];
                cout<<endl;
                s=0,d=0,x=0,f=0,b=0,c=0,flg=0;
            }
        }else if(a[i]=='\0'){
            if(c<6||c>12)break;
            if(s&&x||s&&d||x&&d||s&&x&&d)b=1;
            else break;
            if(b&&f&&flg!=-1){
                for(int j=i-c;j<i;j++)cout<<a[j];
            }
        }else flg=-1;
    }
    return 0;
}

求大佬修改,玄关


by sanmu_kangping @ 2024-08-31 09:18:42

你写的也太复杂了


by TNT_666 @ 2024-09-02 20:45:06

@sanmu_kangping 求求了,能改一下吗


by TNT_666 @ 2024-09-02 20:45:55

@sanmu_kangping 或者给一些特殊样例


by TNT_666 @ 2024-09-06 22:10:09

@jcy666

刚才看别的讨论区觉得你好牛,可以帮忙看看吗?


by jcy666 @ 2024-09-21 21:31:07

@TNT_666 我是小学生,今天才看到,我没空,下次有空了给你看看


by jcy666 @ 2024-09-22 20:03:09

@TNT_666 是不是时间超限了


by jcy666 @ 2024-09-22 20:05:01

@TNT_666 建议用一个子函数把判断部分的代码写进去


by jcy666 @ 2024-09-22 20:29:31

ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);

@TNT_666 在主函数的最前面(cin>>a;的前面)加上这个


by jcy666 @ 2024-09-22 20:34:11

#include<bits/stdc++.h>
using namespace std;
bool pd(string s){
    bool a=false,b=false,c=false,d=false,e=false,f=true;
    if(s.size()>=6&&s.size()<=12){
        a=true;
    }
    for(int i=0;i<s.size();i++){
        if(s[i]>='a'&&s[i]<='z'){
            b=true;
        }
        else if(s[i]>='A'&&s[i]<='Z'){
            c=true;
        }
        else if(s[i]>='0'&&s[i]<='9'){
            d=true;
        }
        else if(s[i]=='!'||s[i]=='@'||s[i]=='#'||s[i]=='$'){
            e=true;
        }
        else f=false;
    }
    bool bcd=false;
    int t;
    if(b) t++;
    if(c) t++;
    if(d) t++;
    if(t>=2){
        bcd=true;
    }
    if(bcd&&a&&e&&f){
        return true;
    }
    return false;
}
int main(){
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    string s,x="";
    getline(cin,s);
    for(int i=0;i<s.size();i++){
        if(s[i]==','||i==s.size()-1){
            if(pd(x)){
                cout<<x<<endl;
            }
            x="";
            continue;
        }
        x=x+s[i];
    }
    return 0;
}

@TNT_666 实在不会看看我的代码


by TNT_666 @ 2024-10-02 20:55:25

@jcy666 谢谢 已关


| 下一页