zoukankan      html  css  js  c++  java
  • 49. 字母异位词分组

    思路:

      1. 判断两个str是否是同样构成可以用  collections.Couter(str) 返回一个dict, 将这些dicts 放入一个专门取index的列表:   [ dict1,dict2,dict3]等等

         若已有相同元素形成的dict,则将其存入对应dict index的列表中      [['abc', 'bca'], ['bcd', 'dcb'], ['bce']]

      2. 官方解答是 tuple(sort(str)) ,tuple可以作为key, 这样就可以直接用字典了 ,直接返回 dict.values 不需要像我一样建一个resList 

    细节:

      1. 一个对象能不能作为字典的key,就取决于其有没有__hash__方法。所以所有python自带类型中,除了list、dict、set和内部至少带有上述三种类型之一的tuple之外,其余的对象都能当key。

        转自 https://blog.csdn.net/lnotime/article/details/81192207

    代码:

    from collections import Counter
    class Solution:
        def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
            
            iList = []
            resList = []
            for a in strs:
                c = Counter(a)
                if c not in iList:
                    iList.append(c)
                    resList.append([a])
                else:
                    i = iList.index(c)
                    resList[i].append(a)
            return(resList)

      

  • 相关阅读:
    输入输出缓冲流(注册登录实现)
    BufferedWriter
    vue2饿了吗之路第一篇:开发环境准备
    Vue之生命周期
    CSS之Flex布局
    Python爬虫之路第二篇:实战
    python爬虫之路第一篇:入门
    python之字典Dict
    python之元祖tuple
    python之列表list
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/12960341.html
Copyright © 2011-2022 走看看