Amigos:
Ya llevo dia y medio nomás, tratando de encontrar la solución a este algoritmo aparentemente simple. Intenté pensarlo con técnicas como divide y vencerás, algoritmos devoradores, y no hay caso, no llego a la solución.
Les dejo el enunciado, que incluye una respuesta, la cual tampoco entiendo. Asi que si alguien podría ofrecer otra solución, desde ya se la agradezco.
Saludos.
-------------
Ejercicio 41. Modelar un clase que implemente un método:
public Vector generate(String source);
que a partir de la cadena de origen “source”, genere todas las palabras que sean combinaciones de sus letras. Por ejemplo, si la cadena de origen fuera “Chau”, el Vector debería llenarse con las siguientes cadenas: Chau, Chua, Cahu, Cauh, Cuha, Cuah, hCau, hCua, haCu, hauC, huCa, huaC, aChu, aCuh, ahCu, ahuC, auCh, auhC, uCha, uCah, uhCa, uhaC, uaCh, uahC.
2. Calcule la complejidad del algoritmo desarrollado.
3. Plantee también el problema de transformar a iterativo el método “generate”.
--------------
Solución propuesta:es.wikibooks.org/wiki/Manual_del_estudiante_de_Ingenier%C3%ADa_en_Sistemas_de_UTN/Dise%C3%B1o_e_Implementaci%C3%B3n_de_Estructuras_de_Datos/Gu%C3%ADas_pr%C3%A1cticas/Recursividad/Soluci%C3%B3n_al_ejercicio_4_de_recursividad