【题目描述】
判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。
【输入】
两行,每行包含一个字符串。
【输出】
若两个字符串相等,输出YES
,否则输出NO
。
【输入样例】
a A bb BB ccc CCC Aa BBbb CCCccc
【输出样例】
YES
小贴士
大写字符a到Z的ASCII码分别为065到090,小写字符a到Z的ASCII码分别为097到122,回车13,空格32
思路
a[]数组先在第一个字符串每个英文字符对应ascii码大小的位置上加1,然后再输入第二个字符串的时候减回去,最后看a[]是否每位等于0。
#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int i=1,j=1,k,n;
int a[130]={0},ch;
while((ch=getchar())!='\n')//换行会终止该循环
{
if(ch>32)//过滤空格
{
k=ch;
if(k>=65&&k<=90)
{
k=k+32;//忽略大小写
}
a[k]+=1;
}
}
while((ch=getchar())!='\n')
{
if(ch>32)
{
k=ch;
if(k>=65&&k<=90)
{
k=k+32;
}
a[k]-=1;
}
}
for(i=65;i<=129;i++)
{
if(a[i]!=0)
{
printf("NO");
return 0;
}
}
printf("YES");
return 0;
}