LeetCode 面试题 10.02. 变位词组[map] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 面试题 10.02. 变位词组[map] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

解题思路:
看似比较复杂的题目,其实换一个思路就很简单,遍历所有的字符串,然后sort,这样只要是变位词,sort 后都相同,统计他们的下标,最后根据他们的下标放入同一个vector中,代码如下:

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        unordered_map<string, vector<int>> mp;
        // 排序 + 存储下标
        for(int i = 0; i < strs.size(); i ++) {
            string s = strs[i];
            sort(s.begin(), s.end());
            mp[s].push_back(i);
        }
        vector<vector<string>> res;
        // 统计
        for(auto& [a, b] : mp) {
            vector<string> ans;
            for(int& i : b) {
                ans.push_back(strs[i]);
            }
            res.push_back(ans);
        }
        return res;
    }
};

以上是关于LeetCode 面试题 10.02. 变位词组[map] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 面试题 10.02. 变位词组[map] HERODING的LeetCode之路

Java每日一题——>面试题 10.02. 变位词组

Java每日一题——>面试题 10.02. 变位词组

Java每日一题——>面试题 10.02. 变位词组

面试题 10.02. 变位词组

面试题 10.02. 变位词组