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,1
scambiato gli elementi 0,1
ma 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.