Encontrar anagramas para una palabra dada

Dos palabras son anagramas si una de ellas tiene exactamente los mismos caracteres que la otra palabra.

Ejemplo:Anagram & Nagaram Son anagramas (mayúsculas y minúsculas).

Ahora hay muchas preguntas similares a esto. Un par de enfoques para encontrar si dos cadenas son anagramas son:

1) Sort Las cuerdas y compararlas.

2) Crear unfrequency map Para estas cadenas y compruebe si son iguales o no.

Pero en este caso, se nos da una palabra (en aras de la simplicidad, asumamos solo una palabra y solo tendremos anagramas de una sola palabra) y necesitamos encontrar los anagramas para eso.

La solución que tengo en mente es que podemosgenerar todas las permutaciones para la palabra y compruebe cuál de estas palabrasexiste en el diccionario . Pero claro, esto es altamente ineficiente. Sí, el diccionario está disponible también.

Entonces, ¿qué alternativas tenemos aquí?

También leí en un hilo similar que algo se puede hacer usandoTries pero la persona no explicó en qué consistía el algoritmo y por qué usamos un Trie en primer lugar, solo se proporcionó una implementación en Python o Ruby. Así que eso no fue de mucha ayuda, por eso he creado este nuevo hilo. Si alguien quiere compartir su implementación (que no sea C, C ++ o Java), por favor explíquela también.

Respuestas a la pregunta(12)

Su respuesta a la pregunta