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 <= 10^4
0 <= strs[i].length <= 100
strs[i]
consists of lowercase English letters.
Solution
My Solution
func groupAnagrams(strs []string) [][]string {
m := map[string][]string{}
for _, s := range strs {
m[sortString(s)] = append(m[sortString(s)],s)
}
res := make([][]string,0,len(m))
for _, v := range m {
res=append(res,v)
}
return res
}
func sortString(s string) string {
str := []rune(s)
sort.Slice(str, func(i, j int) bool {
return str[i] < str[j]
})
return string(str)
}

Leetcode: link
Last updated
Was this helpful?