bool isPermutation(string stringA, string stringB){
if(stringA.length()!=stringB.length()){
return false;
}
unordered_map<char,int> hashMapA;
unordered_map<char,int> hashMapB;
for(int i = 0;i<stringA.length();i++){
hashMapA[stringA[i]]++;
hashMapB[stringB[i]]++;
}
if(hashMapA.size()!=hashMapB.size())
return false;
unordered_map<char, int>::iterator it;
for(it = hashMapA.begin(); it!=hashMapA.end();it++){
if(it->second != hashMapB[it->first])
return false;
}
return true;
}
注意,这里需要做几点说明:
1。如果两个字符串长度不同,则它们一定不可以置换。
2。两个字符串经过哈希映射为哈希表后,两个哈希表的长度不一样,则它们一定不可以置换。
3。代码中it是hashmap的迭代器,it->first指的是哈希表的key,即“键”;it->second指的是哈希表的value,即“值”。
本文介绍了一种用于判断两个字符串是否可以互相置换的算法。通过比较两字符串长度、使用哈希表记录字符出现次数并逐一验证对应字符数量是否一致来实现。此方法适用于字符串相似性分析等场景。
3609

被折叠的 条评论
为什么被折叠?



