Working on hashmap problems now.


Solution

from collections import defaultdict
class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        indexToSortedWord = defaultdict(list)
        for i, word in enumerate(strs):
            indexToSortedWord[str(sorted(word))].append(i)
        
        result = []
        for groupIdx in indexToSortedWord.values():
            group = []
            for idx in groupIdx:
                group.append(strs[idx])
            result.append(group)
        return result 

O(n) = n * m * log(m) time complexity, and O(n) = n space complexity.