Esta es una pregunta de la entrevista:Dada una cadena, se encuentran todas sus permutaciones que son una palabra en el diccionario de
Dada una cadena, encontrar todas sus permutaciones que son una palabra en el diccionario.
Mi solución:
Ponga todas las palabras del diccionario en un árbol de sufijos y después buscar cada permutación de la cadena en el árbol. El tiempo de búsqueda es O(n)
, donde n
es el tamaño de la cadena. Pero la cadena puede tener permutaciones n!
.
¿Cómo puedo mejorar la eficiencia?
El nombre usual para esta tarea es encontrar anagramas, hay un enfoque clásico que usted debería ser capaz de encontrar con ese término de búsqueda. – Per