La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Algoritmia/14460-ANAGRAMAS-PERMUTAR-LETRAS.html

ANAGRAMAS, PERMUTAR LETRAS

ANAGRAMAS, PERMUTAR LETRAS

Publicado por Saúl Quintero (1 intervención) el 09/10/2000 00:00:00
Necesito un algoritmo que permute todas las posiciones posibles de una palabra y buscarlas en un diccionario haber si está o no está,
(necesito el algoritmo de la permuta)
SE LO AGRADEZCO MUCHO

RE:ANAGRAMAS, PERMUTAR LETRAS

Publicado por Pedro Pablo (2 intervenciones) el 14/10/2000 00:00:00
Tienes que hacer un algoritmo recursivo. El problema principal en este caso es saber qué letras han sido utilizadas y cuales no, a parte de que devolver la palabra en C es un poco royo por los punteros, y todo eso.
Te doy el algoritmo en "pseudocódigo", que es una descripción del programa sin remitirte a ningún lenguaje particular, lo que me permite ciertas "licencias" que en C no se permitirían ;-)

Función Permutacion("lista_de_letras") que devuelve una lista_de_palabras {

Si "lista_de_letras" está vacía, terminar

"lista_de_palabras_a_devolver" = lista_vacia

Para cada "letra" de lista_de_letras
"lista_de_palabras_provisional" = Permutacion("lista_de_letras" quitando "letra")
Anteceder a todas las palabras de "lista_de_palabras_provisional" la "letra"
"lista_de_palabras_a_devolver" = "lista_de_palabras_a_devolver" + "lista_de_palabras_provisional"
FinDelPara

Devolver "lista_de_palabras_a_devolver"

}

El problema de este algoritmo es que repite palabras si la palabra original tenía letras repetidas...

Espero que te sirva

RE:ANAGRAMAS, PERMUTAR LETRAS

Publicado por XAVIER (1 intervención) el 02/03/2009 21:19:13
EIOCNN