给定两个字符串,判断他们是否是彼此可置换的

来源:互联网 发布:毒药超女网络海选 编辑:程序博客网 时间:2024/05/22 06:25

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

0 0
原创粉丝点击