Tulis fungsi yang mengambil satu set integer dan mencetak setiap permutasi set, dan swap dilakukan di antara setiap langkah
Memasukkan
seperangkat bilangan bulat, misalnya (0, 1, 2)
Keluaran
daftar permutasi dan swap dalam format (set) (swap) (set) ...
Kasus cobaan
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)
Aturan
- Anda dapat memformat set angka sesuai keinginan Anda.
- Anda dapat melakukan swap dalam urutan apa pun
- Anda dapat mengulangi permutasi dan swap untuk mendapatkan yang baru
- Kode Anda tidak harus benar-benar melakukan swap, output hanya perlu menunjukkan swap apa yang dibuat antara output terakhir Anda dan yang Anda miliki saat ini
- Kode Anda hanya perlu berfungsi untuk set dengan 2 elemen atau lebih
- Set yang Anda berikan tidak akan memiliki elemen berulang (mis. (0, 1, 1, 2) tidak valid)
Ini kode-golf, jadi kode terpendek menang!
(3, 1, 4)
atau lebih - membacanya pertama kali saya sangat bingung karena swap pertama 0,1
bertukar elemen 0,1
tetapi juga indeks 0,1
, tetapi kemudian berikutnya swap tidak mengikuti pola itu. Saya juga akan mengarahkan Anda ke Sandbox di mana Anda dapat memposting tantangan dan mendapatkan umpan balik sebelum mempostingnya ke situs utama.