49. Group Anagrams

Medium


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"]]

Constraints:

  • 1 <= strs.length <= 104

  • 0 <= strs[i].length <= 100

  • strs[i] consists of lowercase English letters.

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        d = defaultdict(int)
        group = defaultdict(list)
        for string in strs:
            for char in list(string):
                d[char] += 1
            key = ""
            for k in sorted(d.keys()):
                key += k + str(d[k])
            group[key].append(string)
            d = defaultdict(int)
        result = []
        for key, value in group.items():
            result.append(value)
        return result
            

Last updated