NumPy allowed · plain Python earns 10 bonus points
Implement Group Anagrams -- using a canonical key (each word's own sorted letters) as a hash-map key is the general pattern for "bucket items by some derived signature," not just for anagrams.
Implement group_anagrams(words): for each word, compute its sorted-letters key (e.g. "eat" -> "aet") and append it to that key's bucket in a dict. Return the buckets as a list of lists, sorted by key alphabetically.
group_anagrams(words: list[str]) -> list[list[str]]