Scrivi una funzione che accetta un insieme di numeri interi e stampa ogni permutazione dell'insieme e lo scambio eseguito tra ogni passaggio
Ingresso
un insieme di numeri interi, ad esempio (0, 1, 2)
Produzione
l'elenco di permutazioni e swap nel formato (set) (swap) (set) ...
Caso di prova
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)
Regole
- È possibile formattare l'insieme di numeri come desiderato.
- Puoi effettuare gli swap in qualsiasi ordine
- Puoi ripetere permutazioni e scambi per ottenerne uno nuovo
- Il codice non deve effettivamente eseguire gli swap, l'output deve solo mostrare quale swap è stato effettuato tra l'ultimo output e quello corrente
- Il tuo codice deve funzionare solo per set con 2 o più elementi
- Il set che ti viene dato non avrà elementi ripetitivi (es. (0, 1, 1, 2) non è valido)
Questo è code-golf, quindi vince il codice più corto!
(3, 1, 4)o giù di lì - leggendolo la prima volta sono stato molto confuso perché il primo swap ha 0,1scambiato gli elementi 0,1ma anche gli indici 0,1, ma poi il successivo lo swap non ha seguito questo schema. Ti indicherò anche il Sandbox dove puoi pubblicare le sfide e ottenere feedback prima di pubblicarle sul sito principale.