Senior
Wie findet man Anagramme eines Wortes im Wörterbuch?
sobes.tech KI
Antwort von AI
Um Anagramm eines Wortes im Wörterbuch in Go zu finden, kannst du die Sortierung der Buchstaben des Wortes als Schlüssel verwenden. Alle Wörter, die bei der Sortierung ihrer Buchstaben die gleiche Zeichenkette ergeben, sind Anagramme voneinander.
Beispiel:
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]
}
Die Idee ist, dass die Sortierung der Buchstaben das Wort normalisiert, und alle Anagramme haben die gleiche sortierte Form.