力扣---字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
(图片来源网络,侵删)
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
示例 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; } };
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。