力扣 49. 字母异位词分组

44 阅读1分钟

🔗 leetcode.cn/problems/gr…

题目

  • 给一个字符串数组,将相同的字母组合(字母异位词)聚合在一起返回

思路

  • 对字符串进行排序,相同的字母组合词会字符串相等

代码

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        unordered_map<string, int> str_map;
        vector<vector<string>> ans;
        int count = 0;
        for (int i = 0; i < strs.size(); i++) {
            string tmp = strs[i];
            sort(tmp.begin(), tmp.end());
            if (str_map.find(tmp) != str_map.end()) {
                ans[str_map[tmp]].push_back(strs[i]);
                continue;
            }
            str_map[tmp] = count++;
            vector<string> tmp_vec;
            tmp_vec.push_back(strs[i]);
            ans.push_back(tmp_vec);
        }
        return ans;      
    }
};