Trình tự xen kẽ đại diện cho một sự hợp nhất tùy ý của một số số trình tự.
Một chuỗi xen kẽ có thể được thực hiện bằng cách nối các phần tử vào danh sách từng cái một từ một số danh sách, chọn phần tử tiếp theo từ một số danh sách mỗi lần. Do đó, một chuỗi xen kẽ sẽ chứa chính xác các yếu tố giống nhau của tất cả các danh sách được kết hợp, theo thứ tự phù hợp với tất cả các danh sách.
Sự xen kẽ duy nhất của 1 danh sách là cùng một danh sách.
Thử thách
Thách thức của bạn là tạo ra một chức năng / chương trình có số lượng trình tự tùy ý và đưa ra tất cả các xen kẽ có thể có của các chuỗi đó.
Ví dụ
Input: [1, 2], [3, 4]
Output:
[1, 2, 3, 4]
[1, 3, 2, 4]
[1, 3, 4, 2]
[3, 1, 2, 4]
[3, 1, 4, 2]
[3, 4, 1, 2]
Input: [1, 2, 3, 4, 5]
Output:
[1, 2, 3, 4, 5]
Input: []
Output:
[]
Input: <nothing>
Output:
[]
(also acceptable)
Input: <nothing>
Output: <nothing>
Input: [1, 2, 3], [4, 5]
Output:
[1, 2, 3, 4, 5]
[1, 2, 4, 3, 5]
[1, 2, 4, 5, 3]
[1, 4, 2, 3, 5]
[1, 4, 2, 5, 3]
[1, 4, 5, 2, 3]
[4, 1, 2, 3, 5]
[4, 1, 2, 5, 3]
[4, 1, 5, 2, 3]
[4, 5, 1, 2, 3]
Input: [1, 2], [3, 4], [5, 6]
Output:
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 5, 4, 6]
[1, 2, 3, 5, 6, 4]
[1, 2, 5, 3, 4, 6]
[1, 2, 5, 3, 6, 4]
[1, 2, 5, 6, 3, 4]
[1, 3, 2, 4, 5, 6]
[1, 3, 2, 5, 4, 6]
[1, 3, 2, 5, 6, 4]
[1, 3, 4, 2, 5, 6]
[1, 3, 4, 5, 2, 6]
[1, 3, 4, 5, 6, 2]
[1, 3, 5, 2, 4, 6]
[1, 3, 5, 2, 6, 4]
[1, 3, 5, 4, 2, 6]
[1, 3, 5, 4, 6, 2]
[1, 3, 5, 6, 2, 4]
[1, 3, 5, 6, 4, 2]
[1, 5, 2, 3, 4, 6]
[1, 5, 2, 3, 6, 4]
[1, 5, 2, 6, 3, 4]
[1, 5, 3, 2, 4, 6]
[1, 5, 3, 2, 6, 4]
[1, 5, 3, 4, 2, 6]
[1, 5, 3, 4, 6, 2]
[1, 5, 3, 6, 2, 4]
[1, 5, 3, 6, 4, 2]
[1, 5, 6, 2, 3, 4]
[1, 5, 6, 3, 2, 4]
[1, 5, 6, 3, 4, 2]
[3, 1, 2, 4, 5, 6]
[3, 1, 2, 5, 4, 6]
[3, 1, 2, 5, 6, 4]
[3, 1, 4, 2, 5, 6]
[3, 1, 4, 5, 2, 6]
[3, 1, 4, 5, 6, 2]
[3, 1, 5, 2, 4, 6]
[3, 1, 5, 2, 6, 4]
[3, 1, 5, 4, 2, 6]
[3, 1, 5, 4, 6, 2]
[3, 1, 5, 6, 2, 4]
[3, 1, 5, 6, 4, 2]
[3, 4, 1, 2, 5, 6]
[3, 4, 1, 5, 2, 6]
[3, 4, 1, 5, 6, 2]
[3, 4, 5, 1, 2, 6]
[3, 4, 5, 1, 6, 2]
[3, 4, 5, 6, 1, 2]
[3, 5, 1, 2, 4, 6]
[3, 5, 1, 2, 6, 4]
[3, 5, 1, 4, 2, 6]
[3, 5, 1, 4, 6, 2]
[3, 5, 1, 6, 2, 4]
[3, 5, 1, 6, 4, 2]
[3, 5, 4, 1, 2, 6]
[3, 5, 4, 1, 6, 2]
[3, 5, 4, 6, 1, 2]
[3, 5, 6, 1, 2, 4]
[3, 5, 6, 1, 4, 2]
[3, 5, 6, 4, 1, 2]
[5, 1, 2, 3, 4, 6]
[5, 1, 2, 3, 6, 4]
[5, 1, 2, 6, 3, 4]
[5, 1, 3, 2, 4, 6]
[5, 1, 3, 2, 6, 4]
[5, 1, 3, 4, 2, 6]
[5, 1, 3, 4, 6, 2]
[5, 1, 3, 6, 2, 4]
[5, 1, 3, 6, 4, 2]
[5, 1, 6, 2, 3, 4]
[5, 1, 6, 3, 2, 4]
[5, 1, 6, 3, 4, 2]
[5, 3, 1, 2, 4, 6]
[5, 3, 1, 2, 6, 4]
[5, 3, 1, 4, 2, 6]
[5, 3, 1, 4, 6, 2]
[5, 3, 1, 6, 2, 4]
[5, 3, 1, 6, 4, 2]
[5, 3, 4, 1, 2, 6]
[5, 3, 4, 1, 6, 2]
[5, 3, 4, 6, 1, 2]
[5, 3, 6, 1, 2, 4]
[5, 3, 6, 1, 4, 2]
[5, 3, 6, 4, 1, 2]
[5, 6, 1, 2, 3, 4]
[5, 6, 1, 3, 2, 4]
[5, 6, 1, 3, 4, 2]
[5, 6, 3, 1, 2, 4]
[5, 6, 3, 1, 4, 2]
[5, 6, 3, 4, 1, 2]
Quy tắc
- Lỗ hổng tiêu chuẩn bị cấm (duh)
- Đầu vào có thể được lấy ở bất kỳ định dạng hợp lý nào, ví dụ như một danh sách các danh sách, danh sách khác nhau của danh sách, danh sách tham số, v.v ... miễn là không rõ ràng nơi danh sách bắt đầu và kết thúc.
- Đầu ra có thể ở bất kỳ định dạng hợp lý nào, miễn là rõ ràng nơi danh sách bắt đầu và kết thúc. Các đầu ra hợp lệ bao gồm, nhưng không nhất thiết giới hạn ở:
- thiết bị xuất chuẩn, với một danh sách trên mỗi dòng
- Một danh sách các danh sách
- Trình lặp trên danh sách (có thể được thực hiện với trình tạo nếu ngôn ngữ của bạn có chúng)
- Thứ tự của các xen kẽ mang lại không quan trọng, tuy nhiên, không nên có bất kỳ xen kẽ lặp đi lặp lại.
- Để đơn giản hóa phát hiện lặp lại, bạn có thể giả sử rằng tất cả các yếu tố trên tất cả các chuỗi đầu vào là duy nhất.
- Nếu không có danh sách nào làm đầu vào, cả danh sách trống và không có đầu ra đều là đầu ra hợp lệ.
- Các loại yếu tố trong chuỗi là không liên quan. (ví dụ: tất cả chúng có thể là một loại hoặc hỗn hợp các loại, tùy theo ngôn ngữ của bạn thuận tiện hơn)
- Chương trình / chức năng của bạn phải được đảm bảo chấm dứt trong một khoảng thời gian hữu hạn.
- Đây là môn đánh gôn , vì vậy mã ngắn nhất cho mỗi ngôn ngữ sẽ thắng.
[[]]thay vì[]khi chúng ta không có danh sách nào làm đầu vào?