給定一個字元串數組,将字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字元串。
示例:
輸入: [“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