Senior
Come trovare gli anagrammi di una parola nel dizionario?
sobes.tech AI
Risposta dell'AI
Per trovare gli anagrammi di una parola in un dizionario in Go, puoi usare l'ordinamento delle lettere della parola come chiave. Tutte le parole che, ordinando le loro lettere, danno la stessa stringa, sono anagrammi tra loro.
Esempio:
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]
}
L'idea è che l'ordinamento delle lettere normalizza la parola, e tutti gli anagrammi hanno la stessa forma ordinata.