Sobes.tech
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.