Napisz funkcję, która pobiera zestaw liczb całkowitych i wypisuje każdą permutację zestawu, a zamiana jest wykonywana pomiędzy każdym krokiem
Wejście
zestaw liczb całkowitych, na przykład (0, 1, 2)
Wynik
lista permutacji i zamian w formacie (zestaw) (zamiana) (zestaw) ...
Przypadek testowy
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)
Zasady
- Możesz sformatować zestaw liczb w dowolny sposób.
- Możesz wykonywać swapy w dowolnej kolejności
- Możesz powtarzać permutacje i zamiany, aby uzyskać nową
- Twój kod nie musi tak naprawdę wykonywać swapów, dane wyjściowe muszą tylko pokazywać, co zostało zrobione między ostatnim a ostatnim wyjściem
- Twój kod musi działać tylko w przypadku zestawów zawierających 2 lub więcej elementów
- Podany zestaw nie będzie zawierał powtarzających się elementów (np. (0, 1, 1, 2) jest nieprawidłowy)
To jest golf golfowy, więc wygrywa najkrótszy kod!
(3, 1, 4)
lub tak - czytając go za pierwszym razem byłem bardzo zdezorientowany, ponieważ pierwsza zamiana 0,1
zamieniła elementy, 0,1
ale także indeksy 0,1
, ale potem następna swap nie postępował zgodnie z tym wzorem. Wskażę ci także piaskownicę, w której możesz publikować wyzwania i uzyskiwać opinie przed opublikowaniem ich na głównej stronie.