• 边工作边刷题:70天一遍leetcode: day 30


    Group Anagrams

    在当下绝对是简单题了,uber考过要求不用sort string实现,可以统计字符个数encode。比如aabd=a2b1d1,用数组表示hash表。这题python实现有个catch,因为input是strs,很容易用str作为单个string的表示。这样hide了str()函数,报错:TypeError: 'unicode' object is not callable

    class Solution(object):
        def groupAnagrams(self, strs):
            """
            :type strs: List[str]
            :rtype: List[List[str]]
            """
            def getHash(s):
                hd = [0]*256
                for c in s:
                    hd[ord(c)]+=1
    
                res = []
                for i in range(256):
                    if hd[i]!=0:
                        res.append(chr(i)+str(hd[i]))
                return ''.join(res)
    
            hsd = {}
            for s in strs:
                hs = getHash(s)
                if hs not in hsd:
                    hsd[hs]=list()
                hsd[hs].append(s)
                
            res = []
            for k in hsd:
                hsd[k].sort()
                res.append(hsd[k])
            return res
                
    
  • 相关阅读:
    通知协议KVO的用法
    UIImageView用法
    默默的学习!
    多输入参数的方法
    一本书的摘录
    实例、局部、静态变量(java)
    分数相加的例题
    类的继承
    多线程
    单例
  • 原文地址:https://www.cnblogs.com/absolute/p/5678102.html
Copyright © 2020-2023  润新知