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,即“值”。