题目:给两个字符串,看能否相互转化,可以任意变换。
分析:简单题。
学习的知识点:
1.字符串的大小用strlen( ); 数组的大小用sizeof( );
2.对于字符串的输入,可以直接用cin>>str1;
3.此题目的要点是:有相同个数的不同的字母,并且这些字母的个数对应相等,所以用到了排序sort( ).
代码:
#include<bits/stdc++.h>
#define maxn 100+8
using namespace std;
char str1[maxn], str2[maxn];
int cnt1[26], cnt2[26];
int main()
{
while(cin>>str1>>str2)
{
memset(cnt1,0,sizeof(cnt1));
memset(cnt2,0,sizeof(cnt2));
for(int i =0; i<strlen(str1);i++)
{
cnt1[str1[i]-'A'] ++;
}
for(int i =0; i<strlen(str2);i++)
{
cnt2[str2[i]-'A'] ++;
}
// for(int i = 0 ;i<26;i++)
// {
// cout<<cnt1[i]<< cnt2[i]<<endl;
// }
sort(cnt1,cnt1+26);
sort(cnt2,cnt2+26);
int flag = 1;
for(int i = 0; i<26; i++)
{
if(cnt1[i] != cnt2[i])
{
flag = 0;
break;
}
}
if(flag) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}