50 lines
1.5 KiB
C++
50 lines
1.5 KiB
C++
#include<stdcpp.h>
|
|
using namespace std;
|
|
|
|
class Solution{
|
|
public:
|
|
bool closeStrings(string word1, string word2){
|
|
if(word1.length()!=word2.length()) return false;
|
|
const int char_nums = 26;
|
|
int word1_chars[char_nums] = {};
|
|
int word2_chars[char_nums] = {};
|
|
for(int i = 0 ; i < word1.length();i++){
|
|
int word1_char = word1[i] - 'a';
|
|
int word2_char = word2[i] - 'a';
|
|
word1_chars[word1_char]++;
|
|
word2_chars[word2_char]++;
|
|
}
|
|
for(int i = 0 ; i <char_nums ; i++){
|
|
if((word1_chars[i]&&!word2_chars[i])||(!word1_chars[i]&&word2_chars[i]))
|
|
return false;
|
|
}
|
|
sort(word1_chars,word1_chars + char_nums);
|
|
sort(word2_chars,word2_chars + char_nums);
|
|
for(int i = 0 ; i < char_nums ; i++){
|
|
if(word1_chars[i] != word2_chars[i])
|
|
return false;
|
|
}
|
|
for(int i = 0 ; i < char_nums ; i++){
|
|
cout<<word1_chars[i]<<' '<<word2_chars[i]<<endl;
|
|
|
|
}
|
|
return true;
|
|
}
|
|
};
|
|
|
|
int main(){
|
|
Solution sol;
|
|
string word1 = "abc";
|
|
string word2 = "bca";
|
|
cout<<sol.closeStrings(word1,word2)<<endl;
|
|
word1 = "a";
|
|
word2 = "aa";
|
|
cout<<sol.closeStrings(word1,word2)<<endl;
|
|
word1 = "cabbba";
|
|
word2 = "abbccc";
|
|
cout<<sol.closeStrings(word1,word2)<<endl;
|
|
word1 = "uau";
|
|
word2 = "ssx";
|
|
cout<<sol.closeStrings(word1,word2)<<endl;
|
|
return 0;
|
|
} |