Senior
Kaip rasti žodžio anagramas žodyne?
sobes.tech AI
Atsakymas iš AI
Norėdami rasti žodžio anagramas žodyne Go kalba, galite naudoti žodžio raidžių rūšiavimą kaip raktą. Visi žodžiai, kurie rūšiuojant jų raides duoda tą patį eilutę, yra tarpusavyje anagramai.
Pavyzdys:
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]
}
Idėja ta, kad raidžių rūšiavimas normalizuoja žodį, ir visi anagramai turi tą pačią rūšiuotą formą.