1 solutions

  • 0
    @ 2025-5-12 16:56:04
    #include<bits/stdc++.h>
    using namespace std;
    bool check(string s)
    {
    	if(s.size()<6||s.size()>12) return false;
    	bool c1=0,c2=0,c3=0;
    	int c4=0;
    	for(int i=0;i<s.size();i++)
    	{
    		if(s[i]>='a'&&s[i]<='z')
    		{
    			c1=1;
    			continue;
    		}
    		if(s[i]>='A'&&s[i]<='Z')
    		{
    			c2=1;
    			continue;
    		}
    		if(s[i]>='0'&&s[i]<='9')
    		{
    			c3=1;
    			continue;
    		}
    		if(s[i]=='!'||s[i]=='@'||s[i]=='#'||s[i]=='$')
    		{
    			c4=1;
    			//cout<<"?????????????";
    			continue;
    		}
    		return false; //一定不是合法的字符 
    	}
    	
    	int t=c1+c2+c3;
    	//cout<<t<<" "<<c4<<endl;
    	if(t>=2&&c4) return true;
    	return false;
    	
    }
    int main()
    {
    	string s;
    	cin>>s;
    	s=s+",";
    	int n=s.size();
    	int last=0;
    	for(int i=0;i<n;i++)
    	{
    		if(s[i]==',')
    		{
    			string s1=s.substr(last,i-last);
    		//	cout<<s1<<endl;
    			if(check(s1))
    			{	
    				cout<<s1<<endl;
    			}
    			last=i+1;
    		}
    	}
    	return 0;
    }
    
    
    • 1

    Information

    ID
    1179
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    3
    Tags
    # Submissions
    4
    Accepted
    2
    Uploaded By