Viết hàm lấy một bộ số nguyên và in mọi hoán vị của tập hợp và hoán đổi được thực hiện ở giữa mỗi bước
Đầu vào
một bộ số nguyên, ví dụ (0, 1, 2)
Đầu ra
danh sách hoán vị và hoán đổi trong định dạng (bộ) (hoán đổi) (bộ) ...
Trường hợp thử nghiệm
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)
Quy tắc
- Bạn có thể định dạng bộ số theo cách bạn muốn.
- Bạn có thể thực hiện các giao dịch hoán đổi theo bất kỳ thứ tự nào
- Bạn có thể lặp lại hoán vị và hoán đổi để có được một cái mới
- Mã của bạn không thực sự phải thực hiện các giao dịch hoán đổi, đầu ra chỉ cần hiển thị hoán đổi được thực hiện giữa đầu ra cuối cùng của bạn và đầu ra hiện tại của bạn
- Mã của bạn chỉ cần hoạt động cho các bộ có 2 phần tử trở lên
- Tập hợp bạn đưa ra sẽ không có phần tử lặp lại (ví dụ: (0, 1, 1, 2) không hợp lệ)
Đây là mã golf, vì vậy mã ngắn nhất sẽ thắng!
(3, 1, 4)
hoặc như vậy - đọc nó lần đầu tiên tôi đã rất bối rối vì lần hoán đổi đầu tiên hoán 0,1
đổi các phần tử 0,1
mà cả các chỉ số 0,1
, nhưng sau đó hoán đổi không theo mô hình đó. Tôi cũng sẽ chỉ cho bạn đến Sandbox nơi bạn có thể đăng các thử thách và nhận phản hồi trước khi đăng chúng lên trang web chính.