Mục tiêu của thách thức này là lấy một loạt các số nguyên dương và liệt kê các chỉ số của nó, nhóm lại như các phần tử.
Việc liệt kê mà không có bất kỳ sự trùng lặp nào được thực hiện bằng cách chỉ xuất ra một mảng các cặp (value, index)
, ví dụ, [3, 4, 13, 9, 2]
=> [[3,1],[4,2],[13,3],[9,4],[2,5]]
.
Tuy nhiên, nếu một yếu tố nhất định xuất hiện lần thứ hai, thì nó không được cung cấp cặp riêng của nó, mà thay vào đó được thêm vào nhóm lần xuất hiện đầu tiên. Nếu trong ví dụ trên của chúng tôi, chúng tôi đã thay thế 9 bằng 3, thì trong đầu ra, chúng tôi sẽ loại bỏ [9,4]
và thay thế [3,1]
bằng [3,1,4]
.
Trong đầu ra, các nhóm phải được sắp xếp theo lần xuất hiện đầu tiên của chúng và các chỉ số phải theo thứ tự tăng dần. Phần tử phải là đầu tiên trong một nhóm, trước các chỉ số của nó. Đầu ra có thể là 0 hoặc 1 được lập chỉ mục. Bạn có thể giả sử mảng có ít nhất một phần tử.
Các trường hợp thử nghiệm:
Input | Output (One-indexed)
[3, 2, 2, 3] | [[3, 1, 4], [2, 2, 3]]
[17] | [[17, 1]]
[1, 1] | [[1, 1, 2]]
[1, 1, 2] | [[1, 1, 2], [2, 3]]
[1, 2, 3, 4] | [[1, 1], [2, 2], [3, 3], [4, 4]]
[1, 1, 1, 1] | [[1, 1, 2, 3, 4]]
Đây là mã golf , ít byte thắng nhất!
[[3, [1, 4]], [2, [2, 3]]]
thay thế?
[[17,"1"]]
? (Chưa biết tôi có thể lưu bất kỳ byte nào theo cách đó hay không, vẫn hoạt động trên đó!)