Kobe_Bryan @ 2024-07-16 16:48:34
改了好久了,一直过不了
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a;
string b;
bool n=true;
int f=0;
int dz=0,xz=0,sz=0,tz=0;
cin>>a;
int x=a.length();
if(a[x-1]!=',')
a[x]=',';
for(int i=0;i<=x;i++)
{
if(a[i]==',')
{
int Sum=0;
for(int g=f;g<i;g++)
{
if(a[g]>='a'&&a[g]<='z')
{
xz=1;
Sum++;
}
if(a[g]>='A'&&a[g]<='Z')
{
dz=1;
Sum++;
}
if(a[g]>='0'&&a[g]<='9')
{
sz=1;
Sum++;
}
if(a[g]=='!'||a[g]=='#'||a[g]=='@'||a[g]=='$')
{
tz=1;
Sum++;
}
}
if(i-f>=7&&i-f<=13&&Sum==i-f&&xz+dz+sz>=2&&tz==1)
{
for(int g=f;g<i;g++)cout<<a[g];
cout<<endl;
}
f=i+1;
i++;
}
}
return 0;
}
by Iron_grand @ 2024-07-16 17:21:57
是不是漏看了这个:
大写字母,小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个。
by Iron_grand @ 2024-07-16 17:47:15
不得不说,你这代码真烂QAQ
#include<bits/stdc++.h>
using namespace std;
string a;//原字符串
string b="";//暂存字符串
int use = true;//该字符串是否为有效字符串(全是有效字符)
bool n=true;
int f=0;
int len=0;//字符串长度
int dz=0,xz=0,sz=0,tz=0;//有效字符统计
bool r(int g){//判断是否为有效字符
if(a[g]>='a'&&a[g]<='z')
{
xz++;
return 1;
}
if(a[g]>='A'&&a[g]<='Z')
{
dz++;
return 1;
}
if(a[g]>='0'&&a[g]<='9')
{
sz++;
return 1;
}
if(a[g]=='!'||a[g]=='#'||a[g]=='@'||a[g]=='$')
{
tz++;
return 1;
}
return 0;
}
//if(i-f>=7&&i-f<=13&&Sum==i-f&&xz+dz+sz>=2&&tz==1)
// {
// for(int g=f;g<i;g++)cout<<a[g];
// cout<<endl;
// }
int main()
{
cin>>a;
int x=a.length();
for(int i=0;i<=x;i++){
if(a[i]==',' || i==x){
// cout << xz << " " << dz << " " << sz << " " << tz;
if((xz>0 && dz>0 || xz>0 && sz>0 || dz>0 && sz>0) && tz>0){
if(len>=6 && len<=12 && use){//长度适合 & 有效字符串
cout << b << endl;
}
}
dz=0,xz=0,sz=0,tz=0;use = true;
b="";len=0;
}else{
if(!use) continue;//若不是有效字符串直接跳过该字符
if(!r(i)){
use = false;
}b+=a[i];
len++;
}
}
return 0;
}```
by Kobe_Bryan @ 2024-07-17 08:36:16
@Iron_grand
if(i-f>=7&&i-f<=13&&Sum==i-f&&xz+dz+sz>=2&&tz==1)
中的
xz+dz+sz>=2&&tz==1
就是判断
by Iron_grand @ 2024-07-17 10:02:40
@Kobe_Bryan xz+dz+sz>=2这句是判断大写字母,小写字母和数字加起来是否大于2,应该改成((xz>0)+(dz>0)+(sz>0) >= 2)才行,AC代码已经留在上面了
by Kobe_Bryan @ 2024-07-17 10:05:18
@Iron_grand 你看我上面判断大小写的,是=1,不是++,说明符合条件的就=1,所以我下面这样写是可以的,我试过了
by Iron_grand @ 2024-07-17 10:07:23
@Kobe_Bryan ok,祝AC