Senior
So'zning anagrammalarini lug'atda qanday topish mumkin?
sobes.tech AI
AIdan javob
Go tilida lugʻatda soʻzning anagrammalarini topish uchun, soʻz harflarining tartibini kalit sifatida ishlatishingiz mumkin. Harflar tartiblanganida bir xil satrni beradigan barcha soʻzlar bir-birining anagrammasidir.
Misol:
package main
import (
"fmt"
"sort"
"strings"
)
func sortString(s string) string {
chars := strings.Split(s, "")
sort.Strings(chars)
return strings.Join(chars, "")
}
func findAnagrams(word string, dictionary []string) []string {
key := sortString(word)
var anagrams []string
for _, w := range dictionary {
if w != word && sortString(w) == key {
anagrams = append(anagrams, w)
}
}
return anagrams
}
func main() {
dict := []string{"listen", "silent", "enlist", "google", "inlets", "banana"}
word := "listen"
fmt.Println(findAnagrams(word, dict)) // [silent enlist inlets]
}
Fikr shuki, harflarning tartibi soʻzni normallashtiradi va barcha anagrammalar bir xil tartiblangan shaklga ega bo'ladi.