poj 2159 Ancient Cipher
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int res[26],origin[26];
int main()
{
string str1,str2;
bool flag=true;
int i;
cin>>str1>>str2;
for(i=0;i<str1.size();++i)
{
res[str1[i]-65]++;
origin[str2[i]-65]++;
}
sort(res,res+26);
sort(origin,origin+26);
for(i=0;i<26;++i)
{
if(res[i]!=origin[i])
{
printf("NO\n");
flag=false;break;
}
}
if(flag)
printf("YES\n");
return 0;
}
//ABBCCC,EKKOOO也是YES,就是说A、B、C移多少位是各自独立的,但相同的例如三个C移多少位是相同的,所以只要两数组的字母频度构成的数组排序后相同就行了