【2019.3.27】早起一题美滋滋
思路:
字符串可以重排:证明字母顺序不重要
一一映射:证明字母的个数重要
用cnt1数组存储字符串1中各字母的个数
用cnt2数组存储字符串2中各字母的个数
将cnt1数组、cnt2数组排好序
若两数组完全相同,证明可以一一映射
ps:用algorithm好爽啊
pps:注意输出格式,是NO不是No
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int cnt1[30];
int cnt2[30];
int main()
{
char c;
while((c=getchar())!=EOF) {
//初始化
memset(cnt1, 0, sizeof(cnt1));
memset(cnt2, 0, sizeof(cnt2));
//输入
cnt1[c-'A']++;
while((c=getchar()) && c!='\n')
cnt1[c-'A']++;
while((c=getchar())!=EOF && c!='\n')
cnt2[c-'A']++;
//排序
sort(cnt1, cnt1+26);
sort(cnt2, cnt2+26);
//判断并输出
bool flag=true;
for(int i=0; i<26; i++) {
if(cnt1[i]!=cnt2[i]) {
cout<<"NO"<<endl;
flag=false;
break;
}
}
if(flag) cout<<"YES"<<endl;
}
return 0;
}