1657.确定两个字符串是否接近
分析:满足三个条件
- 1.两个字符串长度相等
- 2.两个字符串的字符种数相同
- 3.两个字符串的字符频次相同
思路一:
- 使用unordered_set 判断字符种数是否相同
- 使用sort排序判断频次是否相同
class Solution {
public:
bool closeStrings(string word1, string word2) {
int n1=word1.size(),n2=word2.size();
if(n1!=n2) return false;//字符串长度是否相同
unordered_set<char>cset;
vector<int> char1(26),char2(26);
for(int i=0;i<n1;i++){
if(cset.find(word1[i])==cset.end()) cset.insert(word1[i]);
char1[word1[i]-'a']++;
char2[word2[i]-'a']++;
}
cout<<123;
for(auto it:word2){//字符种数和结果字符种数是否相同
if(cset.find(it)==cset.end()) return false;
}
sort(char1.begin(),char1.end());//直接排序比较频次
sort(char2.begin(),char2.end());
return char1==char2;
}
};