本文最后更新于 142 天前。
由于互为字母异位词的两个字符串包含的字母相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,故可以将排序之后的字符串作为哈希表的键。
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
unordered_map<string, vector<string>> mp;
for(string str: strs){
string temp = str;
sort(temp.begin(), temp.end()); // string也可以sort排序
mp[temp].emplace_back(str);
}
vector<vector<string>> ans;
for(auto it = mp.begin();it != mp.end();it++){
ans.emplace_back(it->second);
}
return ans;
}
};
当给vector<vector<string>> ans插入元素时写了ans[0].emplace_back,出现错误,因为数组为空,不可以出现ans[0]的写法。可以如下写: