Group Anagrams

LeetCode 49 · View on LeetCode

Anagrams share the same sorted character sequence. Use sorted string as a dict key to group words together.

from collections import defaultdict

def group_anagrams(strs: list[str]) -> list[list[str]]:
    groups = defaultdict(list)
    for s in strs:
        groups[tuple(sorted(s))].append(s)
    return list(groups.values())

if __name__ == '__main__':
    result = group_anagrams(["eat", "tea", "tan", "ate", "nat", "bat"])
    for group in sorted(result, key=len, reverse=True):
        print(sorted(group))
    # ['ate', 'eat', 'tea']
    # ['nat', 'tan']
    # ['bat']

    print(group_anagrams([""]))   # [['']]
    print(group_anagrams(["a"]))  # [['a']]
© 2026 ByteLearn.dev. Free courses for developers. · Privacy