题目描述:
题解:
之前在《编程珠玑》中见到过合并变位词组的问题,分两步解决:
<1>对每个单词按照字母表顺序排列,互为变位词的单词结果应该相同。
<2>将结果相同的单词合并。
其中第一步将原单词与排列后单词的对应使用dict实现,然后将dict中的values提取合并在一个list中。
class Solution(object):
def groupAnagrams(self, strs):
mydict = {}
myresult = []
for word in strs:
newword = "".join(sorted(word))
if newword in mydict.keys():
mydict[newword].append(word)
else:
mydict[newword]=[]
mydict[newword].append(word)
for i in mydict.keys():
myresult.append(mydict[i])
return myresult
通过是通过了,但没想到这个方法这么慢。



