給定一個字符串數組,將字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字符串。
示例:
輸入: ["eat", "tea", "tan", "ate", "nat", "bat"]
輸出:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
說明:
- 所有輸入均爲小寫字母。
- 不考慮答案輸出的順序。
思路
對每個字符串排序,排完序相等的屬於同一組。用字典會快一點
代碼實現:
class Solution(object):
def groupAnagrams(self, strs):
"""
:type strs: List[str]
:rtype: List[List[str]]
"""
d = {}
for s in strs:
key = tuple(sorted(s))
d[key] = d.get(key, []) + [s]
return d.values()
每次從list裏取一個字符串,排序後,作爲key放入字典中。
最後返回字典的value