变位词类型的题
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)