Thử thách
Nhiệm vụ của bạn cho câu hỏi này là phân chia một mảng số nguyên đầu vào trên lần xuất hiện thứ hai của mỗi số nguyên trong mảng đó.
Không đủ rõ ràng? Đây là một ví dụ để giúp đỡ
Mảng đầu vào:
[2 1 1 2 3 2 2 4 5 6 7 3 7 0 5]
Đầu ra:
[[2 1] [] [3 2 2 4 5 6 7] [] [0] []]
Giải trình:
Đây là mảng chỉ có phần tử thứ hai được tô đậm:
[2 1 1 2 3 2 2 4 5 6 7 3 7 0 5 ]
Bây giờ chúng ta đặt các khối mảng phân tách xung quanh các lần xuất hiện thứ hai táo bạo này:
[2 1] 1 [] 2 [3 2 2 4 5 6 7] 3 [] 7 [0] 5 []
và bọc các mảng bị tách ra trong một mảng để có được kết quả cuối cùng
[[2 1] [] [3 2 2 4 5 6 7] [] [0] []]
Lưu ý rằng khi xảy ra lần thứ hai liền kề, sẽ có các mảng trống.
Quy tắc
Như thường lệ, bạn phải viết một chương trình đầy đủ hoặc một hàm lấy mảng đầu vào thông qua STDIN, ARGV hoặc đối số hàm.
Đầu vào
Đầu vào bao gồm bất kỳ định dạng số nguyên (hoặc dạng mảng) thuận tiện nào.
Chẳng hạn, bất kỳ điều nào sau đây sẽ được chấp nhận:
2 1 1 1 4 5 6
[2 1 1 1 4 5 6]
[2, 1, 1, 1, 4, 5, 6]
Đầu ra
Khi xuất ra STDOUT, mảng của bạn cũng có thể được in ở bất kỳ định dạng mảng (lồng nhau) thuận tiện nào, ví dụ như một trong
[[2 1] [1 4 5 6]]
[[2, 1], [1, 4, 5, 6]]
{{2, 1}, {1, 4, 5, 6}}
(Đây thường sẽ là biểu diễn chuỗi gốc của các mảng trong ngôn ngữ của bạn.)
Cũng lưu ý rằng các mảng trống theo dõi nên được in như là một phần của mảng.
Chấm điểm
Đây là mã golf để mã ngắn nhất trong byte giành chiến thắng!
""
là mảng trống là gì? Điều này có mùi của favourism đối với một ngôn ngữ golf cụ thể.
2 1, 1 4 5 6
?