摘要:读懂题意是关键,只要两个字符串每个频次的字母的个数相同就可以了。
#include <iostream>
#include <algorithm>
using namespace std;
const int size = 105;
int main()
{
char str1[size];
char str2[size];
int len1[size] = {0};
int len2[size] = {0};
string buf1, buf2;
cin >> buf1 >> buf2;
if( buf1.length() != buf2.length() ){
cout << "NO" << endl;
return 0;
}
int length = buf1.length();
for(int i=0; i<length; i++){
str1[i] = buf1[i];
str2[i] = buf2[i];
}
str1[length] = str2[length] = '/0';
sort(str1, str1+length);
sort(str2, str2+length);
int pre_pos = 0;
for(int i=0; i<length; i++){
if( str1[i] != str1[pre_pos] ){
len1[i-pre_pos] += 1;
pre_pos = i;
}
}
len1[length-pre_pos] += 1;
pre_pos = 0;
for(int i=0; i<length; i++){
if( str2[i] != str2[pre_pos] ){
len2[i-pre_pos] += 1;
pre_pos = i;
}
}
len2[length-pre_pos] += 1;
for(int i=1; i<=100; i++){
if(len1[i] != len2[i]){
cout << "NO" << endl;
return 0;
}
}
cout << "YES" << endl;
return 0;
}