¿Cuál es el proceso de ejecución exacto de imprimir permutaciones de cadena de forma recursiva?

Supongo que estás buscando esto,

Caso 1
Entrada: A
salida: A

Caso 2
Entrada: AB
salida: AB, BA

Caso 3
Entrada: ABC
salida: ABC, ACB, BAC, BCA, CAB, CBA,

Algoritmo:

Es muy fácil, tomemos un ejemplo de la cadena “ABC”

Intente realizar cada permutación agregando caracteres uno por uno a la cadena temporal “permutación” que debe imprimirse y eliminando el mismo carácter uno por uno de la cadena original.

Como estamos eliminando uno por uno el carácter de la cadena original y agregándolo a la cadena de “permutación”,
Por lo tanto, es seguro que en un punto la longitud de la Cadena original será 0 y la longitud de
La cadena de “permutación” será 3.

Entonces, el caso base es, cuando la longitud de nuestra cadena original se convirtió en 0, imprimiremos la cadena “permutación” y la devolveremos.

Seguimiento de pila de programa:

Explicación detallada con el programa: escriba un programa para imprimir todas las permutaciones de una cadena dada sin repetición. (No se permite la repetición de caracteres).

En caso de que esté buscando Repetición permitida: escriba un programa para imprimir todas las permutaciones de una cadena dada con repetición. (Se permite la repetición de caracteres).

¿Cuál es su definición de exacto?
¿Necesitas el movimiento de cada electrón involucrado?
Pseudocódigo?
8080 asamblea?
¿Por qué hacer esta pregunta aquí?
La respuesta ya está en internet …

No especificó un idioma, lo que podría ayudar mucho y aún importa, pero supongo que probar el código para una permutación recursiva de una cadena en un depurador o, de todos modos, ir paso a paso agregando una declaración de impresión podría resolver sus necesidades 🙂

More Interesting

¿Qué estoy haciendo mal al determinar el big-O de estas funciones Java?

Cómo escribir un programa para encontrar el mayor número entre cuatro números, sin usar sentencias if y variables de tipo de matriz

¿Cuál es la probabilidad de que 2 números sean iguales en una lista aleatoria de n números de m dígitos?

¿Cuál es el beneficio de sobrecargar una función recursiva?

¿Cuál es el propósito del factor de carga en las tablas hash?

¿Cuáles son los algoritmos posibles que se pueden usar para ordenar cada cubo en el algoritmo de clasificación de cubo?

¿Es este código de búsqueda binario válido? Si es así, ¿entonces cómo?

¿Por qué conocer estructuras de datos y algoritmos básicos no es suficiente para descifrar la mayoría de las entrevistas técnicas?

¿Cuánto cálculo se requiere para comprender algoritmos y redes de computadoras?

¿Cuáles son las posibles amenazas para un algoritmo RSA y cuáles son sus contramedidas?

¿Cuál es una explicación simple de por qué BFS bidireccional se ejecuta en [math] \ Theta (\ sqrt {n}) [/ math]?

¿Cuál es la diferencia entre la clasificación rápida y el algoritmo de clasificación de burbujas?

¿Qué es un algoritmo que calculará si se puede pagar la cantidad [math] n [/ math] si tenemos un suministro ilimitado de monedas para cada valor entre [math] a [/ math] y [math] b [/ math] ?

¿Cuáles son las ventajas y desventajas de comparar la búsqueda de árboles de Monte Carlo y la programación dinámica aproximada?

Cómo imprimir rutas en forma DFS en gráficos