给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。
![](https://img-blog.csdnimg.cn/img_convert/f9d35d8825d20e47e403bf9394ee1b25.png)
思路:
通过设计哈希表中的键值进行归类(将相同键值的字符串都push到容器中便于后面单独取出)
对字符串进行排序的作用:如果为“adc”,排序后则变为“acd”,于是便可以将属于同一组的所有值都将映射到同一组中。
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> result;
unordered_map<string,vector<string>> map;
for(string str : strs)
{
string key=str;
sort(key.begin(),key.end());
map[key].push_back(str);
}
for(auto it=map.begin();it!=map.end();it++)
{
result.push_back(it->second);
}
return result;
}
};