123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- package main
- import (
- "fmt"
- "strconv"
- )
- func main() {
- fmt.Println("hello")
- strs := []string{"bdddddddddd", "bbbbbbbbbbc"}
-
- fmt.Println(groupAnagrams(strs))
- }
- func groupAnagrams(strs []string) [][]string {
- mapDate := make(map[string][]string)
- originMap := make(map[string]int)
- result := [][]string{}
- key := ""
- for i := 0; i < 26; i++ {
- originMap[string(rune(97+i))] = 0
- }
- for i := 0; i < len(strs); i++ {
- key = ""
- strElement := strs[i]
- for j := 0; j < len(strElement); j++ {
- fmt.Print(string(strElement[j]))
- originMap[string(strElement[j])] = originMap[string(strElement[j])] + 1
- }
- fmt.Println()
- for i := 0; i < 26; i++ {
- key = key + strconv.Itoa(originMap[string(rune(97+i))])
- originMap[string(rune(97+i))] = 0
- }
- if rowList, isOK := mapDate[key]; isOK {
- rowList = append(rowList, strElement)
- mapDate[key] = rowList
- } else {
- rowList = append(rowList, strElement)
- mapDate[key] = rowList
- }
- }
- for _, v := range mapDate {
- result = append(result, v)
- }
- fmt.Println(mapDate)
- return result
- }
|