题目:49. 字母异位词分组
链接:https://leetcode-cn.com/problems/group-anagrams
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [ ["ate","eat","tea"], ["nat","tan"], ["bat"] ] 说明: 所有输入均为小写字母。 不考虑答案输出的顺序。
解题:
1、得到所有字符串排序后的形式,再将上述形式相同的字符串放在一个数组中。
代码:
代码语言:javascript复制class Solution(object):
def groupAnagrams(self, strs):
"""
:type strs: List[str]
:rtype: List[List[str]]
"""
sorted_strs = list(map(lambda x: ''.join(sorted(x)), strs))
d = {}
for i, s in enumerate(strs):
ls = d.get(sorted_strs[i], [])
ls.append(s)
d[sorted_strs[i]] = ls
return d.values()
PS:刷了打卡群的题,再刷另一道题,并且总结,确实耗费很多时间。如果时间不够,以后的更新会总结打卡群的题。
PPS:还是得日更呀,总结一下总是好的。