力扣---字母异位词分组

03-11 1697阅读

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

力扣---字母异位词分组
(图片来源网络,侵删)

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 1:

输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]

示例 2:

输入: strs = [""]
输出: [[""]]

示例 3:

输入: strs = ["a"]
输出: [["a"]]

 思路:

解题方法
先创建一个哈希表,遍历strs,将遍历得到的每个字符串排序,这样如“abcb”,“acbb”之类的字符串排序后都是“abbc”,在哈希表“abbc”这个key下储存了“abcb”,“acbb”这两个字符串 再遍历一遍哈希表,将哈希表中的vector添加进答案中
作者:阿米诺斯栈神
链接:https://leetcode.cn/problems/group-anagrams/solutions/2551001/bian-li-hou-pai-xu-yong-ha-xi-biao-ji-lu-8mz0/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

代码:

//排序+哈希表
class Solution {
public:
    vector groupAnagrams(vector& strs) {
        unordered_map mp;
        for(auto t : strs){
            string key = t;
            sort(key.begin(),key.end());
            mp[key].push_back(t);
        }
        vector res;
        for(auto t : mp){
            res.push_back(t.second);
        }
        return res;
    }
};
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]