大佬!!求助

B3843 [GESP202306 三级] 密码合规

cjhhh @ 2024-08-08 23:20:46

#include<iostream>

using namespace std;
string s,l[20];
bool ri=1;
int w=0;
int main(){

    cin>>s;
    int last=0;
    for(int i=0;i<s.size();i++){
        if(s[i]==','||i==s.size()-1){
            int ww=0;
            for(int j=last;j<i;j++){
                l[w]=l[w]+s[j];
            }
            w++;
            last=i+1;
        }
    }

    bool pd[4];
    for(int i=0;i<=w;i++){
        if(l[i].length()>12||l[i].length()<6){
            ri=0;
        }else{
            for(int j=0;j<l[i].size();j++){
                if(l[i][j]>='a'&&l[i][j]<='z'){
                    pd[0]=true;
                }else if(l[i][j]>='A'&&l[i][j]<='Z'){
                    pd[1]=true;
                }else if(l[i][j]>='0'&&l[i][j]<='9'){
                    pd[2]=true;
                }else if(l[i][j]=='!'||l[i][j]=='@'||l[i][j]=='#'||l[i][j]=='$'){
                    pd[3]=true;
                }else{
                    ri=0;
                }
            }
            if(ri!=0){
                int jss=0;
                for(int j=0;j<3;j++){
                    if(pd[j]==1){
                        jss++;
                    }
                }
                if(jss<2||pd[3]!=1){
                    ri=0;
                }
            }
        }

        if(ri==1){
            cout<<l[i]<<endl;
        }
        ri=1; 
    }

    return 0;
} 

by LHW_Cosset_Idiot @ 2024-08-11 08:12:01

@cjhhh 基本思路没问题\ 看下数组数组是不是没有初始化或者还原。\ 可以看下这个的思路。

#include<bits/stdc++.h>
using namespace std;
string s;
char a[901];
int j=1,es,el,sz,xc;
int main()
{
    cin>>s;
    for(int i=0; i<s.size(); i++){
        if(s[i]!=','){
            a[j] = s[i];
            j++;
            if(s[i] >= 'a' && s[i] <= 'z'){
                es++;
            }
            if(s[i] >= 'A' && s[i] <= 'Z'){
                el++;
            }
            if(s[i] >= '0' && s[i] <= '9'){
                sz++;
            }
            if(s[i] == '!' || s[i] == '@' || s[i] == '#' || s[i] == '$'){
                xc++;
            }
        }
        if(s[i] == ','){
            if(j>=7 && j<=13 && (es!=0 && el!=0 || es!=0 && sz!= 0 || el !=0 && sz!=0) && xc>=1 && es+el+sz+xc==j-1) {
                for(int k=1; k<j; k++){
                    cout<<a[k];
                }
                cout<<endl;
            }
            j=1;
            es=0;
            el=0;
            sz=0;
            xc=0;
            memset(a,0,sizeof(a));
        }
    }
    return 0;
}

by cjhhh @ 2024-08-13 12:30:26

@lihanwen2024 好的,谢谢


by LHW_Cosset_Idiot @ 2024-08-13 14:22:15

@cjhhh 求关


|