294 字
1 分钟
LeetCode 面试经典150题 [44/150 字母异位词组合]
题目描述
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1:
输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [["bat"],["nat","tan"],["ate","eat","tea"]]示例 2:
输入: strs = [""]输出: [[""]]个人C++解答
思路主要是参考官方题解,自己做的话估计会很复杂; 根据题目描述,需要找到所有词的所有异位词,需要分析其共有特点,即异位词的所有字母相同,即将异位词重新排序后,得到的是相同的一个单词;同时,根据哈希表的特性,不会保存相同的key,但是value可以保存数组或向量等,所以我们可以进行如下操作:将哈希表的value设置为string的vector类型,遍历strs数组,将每个单词排序后作为key,原单词作为value保存至HashMap中,这样就可以得到每一组异位词;最后便利哈希表将异位词取出;
class Solution {public: vector<vector<string>> groupAnagrams(vector<string>& strs) { unordered_map<string,vector<string>> HashMap; for(const string str:strs){ string key = str; sort(key.begin(),key.end()); HashMap[key].push_back(str); } vector<vector<string>> result; for(auto it = HashMap.begin();it!=HashMap.end();++it){ result.push_back(it->second); } return result; }}; 分享
如果这篇文章对你有帮助,欢迎分享给更多人!
LeetCode 面试经典150题 [44/150 字母异位词组合]
https://ericonline.cn/posts/leetcode-面试经典150题-44-150-字母异位词组合/ 部分信息可能已经过时
相关文章 智能推荐
随机文章 随机推荐
1
LeetCode 面试经典150题 [77/150 二叉树的锯齿形层序遍历]
LeetCode 题解 2024-07-31
2
LeetCode 面试经典150题 [28/150 长度最小的子数组]
LeetCode 题解 2024-06-23
3
LeetCode 面试经典150题 [59/150 K个一组翻转链表]
LeetCode 题解 2024-07-02
4
FastDDS中遇到的 Octet 解释 [GPT]
C++ 工程手艺 2024-06-11
5
LeetCode 面试经典150题 [12/150 O(1) 时间插入、删除和获取随机元素]
LeetCode 题解 2024-06-19