首页 > 其他 > 详细

leetcode 每日一题 49. 字母异位词分组

时间:2020-05-31 13:25:55      阅读:24      评论:0      收藏:0      [点我收藏+]

技术分享图片

排序分类

思路:

建一个字典,把数组中排序后的字符串作为key值,对应数组中的原字符串添加到value中的数组里。

代码:

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        def sortStr(word:str)->str:
            return "".join(sorted(list(word)))
        dic = {}
        for word in strs:
            sortedWord = sortStr(word)
            if sortedWord in dic:
                dic[sortedWord].append(word)
            else:
                dic[sortedWord] = [word]
        return list(dic.values())

统计字符出现次数

思路:

建一个字典,把每个字符串中字符在26个英文字母数组中出现的次数作为key值,对应字符串添加到value数组中。

代码:

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        def keyStr(word:str)->str:
            key = [0] * 26
            for char in word:
                key[ord(char) - ord(a)] += 1
            return ‘‘.join([str(i) for i in key])
        dic = {}
        for word in strs:
            key = keyStr(word)
            if key in dic:
                dic[key].append(word)
            else:
                dic[key] = [word]
        return list(dic.values())

 

 

leetcode 每日一题 49. 字母异位词分组

原文:https://www.cnblogs.com/nilhxzcode/p/12997077.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!