解题思路:
具体的代码:
package top100
import (
"fmt"
"testing"
)
// 字母异位词分组
func TestTop2(t *testing.T) {
strs := []string{"eat", "tea", "tan", "ate", "nat", "bat"}
anagrams := groupAnagrams(strs)
fmt.Println(anagrams)
}
func groupAnagrams(strs []string) [][]string {
m := make(map[[26]int][]string)
for _, str := range strs {
// 每次都会清除26个字母的key
var temp [26]int
for _, char := range str {
temp[char-'a']++
}
//相同的时候,会将相同的字符串,添加到切片中
m[temp] = append(m[temp], str)
}
// 声明一个返回的结果类型
var res [][]string
// 将map中的数据添加到res中
for _, value := range m {
res = append(res, value)
}
return res
}