1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| package main
import ( "fmt" "sort" "strings" )
func groupAnagrams(strs []string) [][]string { var maps map[string][]string maps = make(map[string][]string)
for _, v := range strs { key := stringToKey(v) maps[key] = append(maps[key], v) }
var result [][]string result = make([][]string, 0, len(maps))
for _, v := range maps { result = append(result, v) }
return result }
func stringToKey(str string) string { strs := strings.Split(str, "")
sort.Strings(strs)
return strings.Join(strs, "") }
func main() { fmt.Println(groupAnagrams([]string{ "eat", "tea", "tan", "ate", "nat", "bat", })) }
|