天天看點

利用python 完成leetcode49 字母異位詞分組

給定一個字元串數組,将字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字元串。

示例:

輸入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”],

輸出:

[

[“ate”,“eat”,“tea”],

[“nat”,“tan”],

[“bat”]

]

說明:

所有輸入均為小寫字母。

不考慮答案輸出的順序。

思路

字母異位詞的字母及其數量是一樣的,那麼其排序後的結果應該也是一樣的

比如[“ate”,“eat”,“tea”],排序後都是‘aet’,可以利用字典。先對每個單詞排序,在用每個單詞排序後的結果作為其在字典的key

代碼

def groupAnagrams(self, strs):
        q={}
        for c in strs:
            s=''.join(sorted(list(c)))
            if s not in q.keys():q[s]=[]
            q[s].append(c)
        l=[]
        for c in q:
            l.append(q[c])
        return l