Skip to content

Latest commit

 

History

History
33 lines (30 loc) · 886 Bytes

49_group_anagrams.md

File metadata and controls

33 lines (30 loc) · 886 Bytes

Given an array of strings strs, group the anagrams together. You can return the answer in any order.

An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.

Example 1:

Input: strs = ["eat","tea","tan","ate","nat","bat"]
Output: [["bat"],["nat","tan"],["ate","eat","tea"]]

Example 2:

Input: strs = [""]
Output: [[""]]

Example 3:

Input: strs = ["a"]
Output: [["a"]]

Solution

from collections import defaultdict
class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        lookup = defaultdict(list)
        for word in strs:
            key = ''.join(sorted(list(word)))
            lookup[key].append(word)
        return [word for word in lookup.values()]