From 94d7623ed829f13d1c630e0b25ba48c6cdf5e659 Mon Sep 17 00:00:00 2001 From: mayiming <1627832236@qq.com> Date: Sat, 16 Aug 2025 23:37:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=97=E6=AF=8D=E5=BC=82=E4=BD=8D=E8=AF=8D?= =?UTF-8?q?=E5=88=86=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Hash/zimuyicifenzu/main.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Hash/zimuyicifenzu/main.go diff --git a/Hash/zimuyicifenzu/main.go b/Hash/zimuyicifenzu/main.go new file mode 100644 index 0000000..0c06d18 --- /dev/null +++ b/Hash/zimuyicifenzu/main.go @@ -0,0 +1,36 @@ +package main + +import ( + "fmt" + "sort" +) + +func main() { + fmt.Println(groupAnagrams([]string{"a"})) +} + +func groupAnagrams(strs []string) [][]string { + hash := make(map[string][]int) + result := make([][]string, 0) + for value, str := range strs { + runes := []rune(str) + sort.Slice(runes, func(i, j int) bool { + return runes[i] < runes[j] + }) + if _, ok := hash[string(runes)]; ok { + hash[string(runes)] = append(hash[string(runes)], value) + } else { + hash[string(runes)] = make([]int, 0) + hash[string(runes)] = append(hash[string(runes)], value) + } + } + for _, value := range hash { + tmp := make([]string, 0) + for _, value := range value { + tmp = append(tmp, strs[value]) + } + result = append(result, tmp) + } + return result + +}