虽说课本上讲的是将函数当作参数一样使用,但是这题可以不用那么做。
代码:
#include <bits/stdc++.h>
using namespace std;
#define maxn 100 + 5
string a, b;
int cnt[maxn], cnt2[maxn];
void ssor(int *s)
{
int t, i, j;
int len = 26;
for(int i = 0; i < len; i++)
{
for(int j = i + 1; j < len; j++)
if(s[i] > s[j])
{
t = s[i];
s[i] = s[j];
s[j] = t;
}
}
}
int main()
{
while(cin>>a>>b)
{
int len1 = a.length(), len2 = b.length();
memset(cnt,0,sizeof(cnt));
memset(cnt2,0,sizeof(cnt2));
if(len1 != len2)
cout<<"NO"<<endl;
else
{
for(int i = 0; i < len1; i++)
{
cnt[a[i] - 'A']++;
cnt2[b[i] - 'A']++;
}
ssor(cnt);
ssor(cnt2);
int flag = 1;
for(int i = 0; i < 26; i++)
if(cnt[i] != cnt2[i])
flag = 0;
if(flag)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
return 0;
}