【哈希表】Leecode-49. 字母异位词分组
【摘要】 【题目】给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1:输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [["bat"],["nat","tan"],["ate","eat","tea"]]示例 2:输入: strs = [...
【题目】
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
示例 1:
输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
示例 2:
输入: strs = [""] 输出: [[""]]
示例 3:
输入: strs = ["a"] 输出: [["a"]]
【题解】
题解1:
- 思路
遍历字符串列表,对每一个字符串排序得到一个新的字符串,字母异位词排序后的字符串是相同的,所以相同的排序字符串加到同一个队列中
- 复杂度
时间复杂度:O(n),空间复杂度:O(n)
- 代码
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
d = {}
for string in strs:
temp = ''.join(sorted(string))
if temp in d:
d[temp].append(string)
else:
d[temp] = [string]
return [arr for arr in d.values() if arr]
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)