美文网首页
字谜分组

字谜分组

作者: Houtasu | 来源:发表于2018-07-30 16:55 被阅读0次

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

示例:

输入:["eat", "tea", "tan", "ate", "nat", "bat"],

输出:[  ["ate","eat","tea"],  ["nat","tan"],  ["bat"]]

说明:

所有输入均为小写字母。

不考虑答案输出的顺序。

解题思路:
遇到分类为题,首先要想到python的字典,字典的键可以作为类别,值就是该类别下的数据了。这道题可以用排序后的字符串作为键,而不同的字母异位词就是值了。另外,在python字典中,可以之间使用 字典名[新的键]=新的值来添加一个新的键值对。但是不可以直接访问一个没有键名的值,会抛出异常。在本题中,我们遍历原始数组并添加到字典时,会遇到直接访问值的情况,这里可以用到collections库中的defaultdict类型,它需要一个默认参数,当遇到没有键名的情况下可以自动生成并赋予该默认值。具体可以参考下面的代码理解。
代码如下:

def groupAnagrams(self, strs):
        """
        :type strs: List[str]
        :rtype: List[List[str]]
        """
        dic = collections.defaultdict(list)

        for i in strs:
            dic[''.join(sorted(i))].append(i)   
                #此时直接访问了字典的值,如果字典没有对应的键会抛出异常,所以要使用defaultdict
        return list(dic.values())

相关文章

  • 字谜分组

    给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 说明: 所有输入均...

  • 字谜分组

    字谜分组 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。说明:所有输入均为...

  • 字谜分组

    给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: ["eat...

  • 14 - Medium - 字谜分组

    给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: ["eat...

  • 💮字谜解析

    一字谜构成 从字谜语言结构的表现方式上看,字谜由三个部分组成:谜面、谜底和谜目。 谜面,是猜谜时说出来或者写出来...

  • 字母异位词分组

    给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 说明:所有输入均为...

  • 第二天更新

    1、皇帝新衣——袭 2、字谜:一流水准 ——淮 3、字谜:石达开 ——研 4、字谜:拱猪入门——阂 5、字谜:格外...

  • 2020-07-12【leetcode-字符串】字谜分组

    【leetcode-字符串】字谜分组 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同...

  • 一张图一个字谜,一共五道题,挑战你的智慧

    字谜文化博大精深,趣味无穷,一个小小的字谜就能让我们感受到汉字的绝妙。当然,猜字谜一般是有窍门的,一个字谜一般包括...

  • 字谜

    一个孩子 和一只瓜 走兽 爬虫 语文课上 居然也像是教着美术 一个孩子 送给我一幅画 简单的线条 挑衅的看着我 似...

网友评论

      本文标题:字谜分组

      本文链接:https://www.haomeiwen.com/subject/rjifvftx.html