Sobes.tech
Senior

¿Cómo encontrar anagramas de una palabra en un diccionario?

sobes.tech AI

Respuesta de la IA

Para encontrar anagramas de una palabra en un diccionario en Go, puedes usar la ordenación de las letras de la palabra como clave. Todas las palabras que, al ordenar sus letras, dan la misma cadena, son anagramas entre sí.

Ejemplo:

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]
}

La idea es que ordenar las letras normaliza la palabra, y todos los anagramas tienen la misma forma ordenada.