Group Anagrams

变位词类型的题

1 题目描述

给定列表 ['bat', 'atb', 'eat', 'tba', 'tea', 'abc']
输出:

[['bat', 'atb', 'tba'],
['eat', 'tea'],
['abc']]

2 解题

2.1 分析

题目的要求是将同一组变位词放到一起,所以将同一组变位词的字符set作为键,不同的变位词作为值存到一个字典里。然后分组输出。

2.2 代码

class Solution:
    def groupAnagrams(self, alist):
        result = []
        strDict = {}
        for string in alist:
            if ''.join(sorted(string)) not in strDict.keys():
                strDict[''.join(sorted(string))] = [string]
            else:
                strDict[''.join(sorted(string))] += [string]
        
        for string in strDict.keys():
            tmp = strDict[string]
            tmp = sorted(tmp)
            result.append(tmp)
        
        return result
        
s = Solution()
a = ['bat', 'atb', 'eat', 'tba', 'tea', 'abc']
s.groupAnagrams(a)
    原文作者:路人乙yh
    原文地址: https://www.jianshu.com/p/787a2f4106eb
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞