Escriba una función que tome un conjunto de enteros e imprima cada permutación del conjunto, y el intercambio realizado entre cada paso
Entrada
un conjunto de enteros, por ejemplo (0, 1, 2)
Salida
la lista de permutaciones y swaps en el formato (conjunto) (intercambio) (conjunto) ...
Caso de prueba
Input:
(3, 1, 5)
Output:
(3, 1, 5)
(3, 1)
(1, 3, 5)
(3, 5)
(1, 5, 3)
(1, 3)
(3, 5, 1)
(3, 5)
(5, 3, 1)
(3, 1)
(5, 1, 3)
Reglas
- Puede formatear el conjunto de números como lo desee.
- Puedes hacer los intercambios en cualquier orden
- Puede repetir permutaciones e intercambios para obtener uno nuevo
- Su código no tiene que realizar realmente los intercambios, la salida solo debe mostrar qué intercambio se realizó entre su última salida y la actual
- Su código solo necesita funcionar para conjuntos con 2 o más elementos
- El conjunto que se le dará no tendrá elementos repetidos (por ejemplo, (0, 1, 1, 2) no es válido)
Este es el código de golf, ¡el código más corto gana!
(3, 1, 4)
o algo así: leerlo la primera vez que estaba muy confundido porque el primer intercambio 0,1
intercambió los elementos 0,1
pero también los índices 0,1
, pero luego el siguiente el intercambio no siguió ese patrón. También lo señalaré al Sandbox donde puede publicar desafíos y obtener comentarios antes de publicarlos en el sitio principal.