打卡群刷题总结0708——字母异位词分组

2020-07-14 11:12:22 浏览数 (1)

题目: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:还是得日更呀,总结一下总是好的。

0 人点赞