题目详情
本题是一道典型的数组下标计数问题
题上要求:
1.排序
2.一一映射后相等(其实这里可以作为一个提示条件,因为映射规则自定义,A-E,H-H都可以)
所以这里我们只需总结一下,排序后相应位置字母的个数是否相等就像;
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
string a,b;//两串字符
int m[26];//存放第一个字符串字母个数
int n[26];//存放第二个字符串字母个数
while(cin>>a>>b)
{
memset(m,0,sizeof(m));
memset(n,0,sizeof(n));
for(int i=0;i<a.length();i++)
{
++m[a[i]-'A'];
++n[b[i]-'A'];
}
sort(m,m+26);
sort(n,n+26);
int find=1;
for(int i=0;i<26;i++)
{
if(m[i]!=n[i])
{
find=0;
break;
}
}
printf(find?"YES\n":"NO\n");
}
return 0;
}