题目描述:
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母都恰好只用一次。
方法一:
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> ans;
unordered_map<string, vector<string>> maps;
for (int i = 0; i < strs.size(); i++)
{
string temp = strs[i];
sort(temp.begin(), temp.end());
maps[temp].push_back(strs[i]);
}
for (auto ite = maps.begin(); ite != maps.end(); ite++)
{
ans.push_back(ite->second);
}
return ans;
}
};
利用哈希表和sort()函数,原本以为这样做时间复杂度太高,应该还有更快的方法,看了一下评论,确实是这样的方法。