class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
query = {}
for string in strs:
string_counter = "".join(sorted(string)) # 注意对字符串sort之后会变成 字符list
if string_counter in query:
query[string_counter].append(string)
else:
query[string_counter] = [string]
return [i[1] for i in query.items()]
时间复杂度:O(nklog(k)), where n=|strs|, k=|strs[i]|
空间复杂度:O(nk)
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
anagram_dict = collections.defaultdict(list)
for word in strs:
key = ''.join(sorted(word))
anagram_dict[key].append(word)
return list(anagram_dict.values())