B:字符串判等
-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。
输入
- 两行,每行包含一个字符串。 输出
- 若两个字符串相等,输出YES,否则输出NO。 样例输入
-
a A bb BB ccc CCC Aa BBbb CCCccc
样例输出
YES
这道题是我想多了,其实用最原始、基本的方法就能做出来,只不过花费的空间大点,开四个数组。方法就是先把小写转成大写字母,然后分别把字符串拷贝到缓存数组中,再用strcmp比较即可。我试图不用拷贝的方法,用while循环动态比较的方式,WA了好几次。。。机试时候还是求稳比较好啊,尽量用有把握的方法。
#include <cstdio>
#include <cstring>
using namespace std;
char a[100];
char b[100];
char aa[100];
char bb[100];
int main()
{
gets(a);
gets(b);
int len_a=strlen(a);
int len_b=strlen(b);
int i;
int cnta=0;
int cntb=0;
for(i=0;i<len_a;i++){
if(a[i]>='a'&&a[i]<='z'){
aa[cnta]=a[i]-32;
cnta++;
}
else if(a[i]==' ')
continue;
else{
aa[cnta]=a[i];
cnta++;
}
}
aa[cnta]='\0';
for(i=0;i<len_b;i++){
if(b[i]>='a'&&b[i]<='z'){
bb[cntb]=b[i]-32;
cntb++;
}
else if(b[i]==' ')
continue;
else{
bb[cntb]=b[i];
cntb++;
}
}
bb[cntb]='\0';
printf("%s\n",strcmp(aa,bb)==0?"YES":"NO");
return 0;
}
************************
坚持,而不是打鸡血~