题意:求两个字符串相对应的字符个数是否相同
思路:首先判断两个字符串的长度是否相同,不相同直接pass,长度都不同其字符的个数肯定不同,然后把两个字符串中的小写字符全部转化为大写,然后把26个大写字母映射到数组a和b上,a和b对应的位置就是对应的26个大写字母,全部一致就输出Y,否则N
代码:
#include <iostream>
#include<string>
using namespace std;
int a[26],b[26],flag=1;//将两个字符串映射到两个数组
int main(int argc, char** argv) {
string str1,str2;
cin>>str1>>str2;
if(str1.length()!=str2.length()){//判断长度是否相等,不相等,则里面包含的字符个数肯定不相同
printf("N");
}else{
for(int i=0;i<str1.length();i++){//把字符串str1变成大写的
str1[i] = toupper(str1[i]);
str2[i] = toupper(str2[i]);
}
for(int i=0;i<str1.length();i++){//统计两个字符串的每个字母出现的次数
a[str1[i]-'A']++;
b[str2[i]-'A']++;
}
for(int i=0;i<26;i++){
if(a[i]!=b[i]){
flag=0;
}
}
if(flag) printf("Y");
else printf("N");
}
return 0;
}