DSA Patterns (Multi-Lang)•Part 2: Arrays, Strings & Hash Maps (6 - 18)
Group Anagrams.
In Simple Words: Sort each word's characters alphabetically to create a canonical key. Group words with the same sorted key together into a Hash Map.
- Time: $O(N \cdot K \log K)$ | Space: $O(N \cdot K)$
Multi-Language SolutionsPython 3 • JavaScript • TypeScript • Java • C++
Switch tabs or choose Allfrom collections import defaultdict
def groupAnagrams(strs: list[str]) -> list[list[str]]:
ans = defaultdict(list)
for s in strs:
key = "".join(sorted(s))
ans[key].append(s)
return list(ans.values())