对具有相同组合的字符串进行分组

我想使用Go对具有相同组合的字符串进行分组。


假设我有这样的字符串数组:


['kita', 'atik', 'tika', 'aku', 'kia', 'makan', 'kua']

预期的输出是这样的


[

 ["kita", "atik", "tika"],

 ["aku", "kua"],

 ["makan"],

 ["kia"]

]


梦里花落0921
浏览 128回答 1
1回答

至尊宝的传说

这应该是使用地图实现的:package mainimport (&nbsp; &nbsp; "log"&nbsp; &nbsp; "sort")func main() {&nbsp; &nbsp; words := []string{"kita", "atik", "tika", "aku", "kia", "makan", "kua"}&nbsp; &nbsp; refs := map[string][]string{}&nbsp; &nbsp; for _, word := range words {&nbsp; &nbsp; &nbsp; &nbsp; // normalizing word&nbsp; &nbsp; &nbsp; &nbsp; r := []rune(word)&nbsp; &nbsp; &nbsp; &nbsp; sort.Slice(r, func(i, j int) bool { return r[i] < r[j] })&nbsp; &nbsp; &nbsp; &nbsp; sortedWord := string(r)&nbsp; &nbsp; &nbsp; &nbsp; // appending in the normalized word map&nbsp; &nbsp; &nbsp; &nbsp; refs[sortedWord] = append(refs[sortedWord], word)&nbsp; &nbsp; }&nbsp; &nbsp; // transforming into a slice of slices&nbsp; &nbsp; result := [][]string{}&nbsp; &nbsp; for _, item := range refs {&nbsp; &nbsp; &nbsp; &nbsp; result = append(result, item)&nbsp; &nbsp; }&nbsp; &nbsp; log.Println(result)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go