大意略。
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <string>
#include <cstring>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <algorithm>
using namespace std;
const int maxn = 1010;
const int sigma_size = 26;
char str1[maxn], str2[maxn];
int count1[sigma_size], count2[sigma_size];
void init()
{
memset(count1, 0, sizeof(count1));
memset(count2, 0, sizeof(count2));
}
int cmp(int a, int b)
{
return a > b;
}
void solve()
{
init();
for(int i = 0; str1[i]; i++) count1[str1[i]-'A']++;
for(int i = 0; str2[i]; i++) count2[str2[i]-'A']++;
sort(count1, count1+sigma_size, cmp);
sort(count2, count2+sigma_size, cmp);
for(int i = 0; i < sigma_size; i++)
{
if(count1[i] != count2[i]) { printf("NO\n"); return ;}
}
printf("YES\n");
}
int main()
{
while(~scanf("%s%s", str1, str2))
{
solve();
}
return 0;
}