今天是紀錄LeetCode解題的第四十九天
第四十九題題目:Given an array of strings strs, group the anagrams together. You can return the answer in any order.
給定一個字串數組strs,將他們有同樣字謎的分組一起,可以回傳任意順序
建立一個空字典,來存放分組,遍歷整個strs,把每個字串變成Tuple並做排序,接著把排序好的Tuple當作字典的key,並放入字典,這樣字串如果是相同字母的組合,就會在排序時得到相同的key,並被放到同一組key的value裡
from collections import defaultdict
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
group = defaultdict(list)
for s in strs:
key = tuple(sorted(s))
group[key].append(s)
return list(group.values())
這裡的defaultdict用法和普通的字典幾乎一樣,但可以在key不存在時自動建立預設值