原题链接
leet hot 100-2
49. 字母异位词分组
思路
要求把含有相同字母的放到一起,我们可以遍历每一个字符串 将他们重新排序,将排序完是一样的字符串放在一起 用无序容器存放起来 然后遍历这个无序map容器将排序后相同的值放在一起。时间复杂度O(n) 空间复杂度(n)
代码
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
unordered_map<string ,vector<string>> ans;
for(int i = 0;i<strs.size() ;i++)
{
string s = strs[i];
sort(s.begin() ,s.end());
ans[s].push_back(strs[i]);
}
vector<vector<string>> res;
for(auto a:ans)
{
res.push_back(a.second);
}
return res;
}
};