Group Anagrams
Problem page:https://leetcode.com/problems/group-anagrams
Solution
class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        res = defaultdict(list)
        for word in strs:
            s_word = ''.join(sorted(word))
            res[s_word].append(word)
        return list(res.values())
Complexity
- time: O(n * k log k), where n is the number of strings and k is the maximum length of a string
- space: O(n * k)