大意略。
#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; }