1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
func groupAnagrams(strs []string) [][]string {
// 没大写字母,压缩到26个数组
cache := make(map[[26]int][]string)
for _, str := range strs {
var key [26]int
// 一个循环下来,将相应的字母的计数保存到相应的数组位
for _, c := range str {
key[c-'a']++
}
// 整个key数组就是map的key,然后将相同key的str append起来
cache[key] = append(cache[key], str)
}
var res [][]string
// 遍历返回即可
for _, strings := range cache {
res = append(res, strings)
}
return res
}
|