Trong Elixir, các danh sách (được liên kết) có định dạng [head | tail]
trong đó phần đầu có thể là bất cứ thứ gì và đuôi là danh sách của phần còn lại của danh sách, và []
- danh sách trống - là ngoại lệ duy nhất cho điều này.
Danh sách cũng có thể được viết như thế [1, 2, 3]
tương đương với[1 | [2 | [3 | []]]]
Nhiệm vụ của bạn là chuyển đổi một danh sách như mô tả. Đầu vào sẽ luôn là một danh sách hợp lệ (trong Elixir) chỉ chứa các số khớp với biểu thức chính quy \[(\d+(, ?\d+)*)?\]
. Bạn có thể lấy đầu vào có (một dấu cách sau mỗi dấu phẩy) hoặc không có dấu cách. Đầu ra có thể có (một |
khoảng trắng trước và sau mỗi khoảng trống) hoặc không có khoảng trắng.
Đối với các đầu vào có số 0 đứng đầu, bạn có thể xuất ra mà không có số không hoặc có.
Đầu vào phải được lấy dưới dạng một chuỗi (nếu viết hàm), cũng như đầu ra.
Ví dụ
[] -> []
[5] -> [5 | []]
[1, 7] -> [1 | [7 | []]]
[4, 4, 4] -> [4 | [4 | [4 | []]]]
[10, 333] -> [10 | [333 | []]]
liên quan , không phải là một bản sao vì điều này một phần liên quan đến việc thêm chế độ ]
vào cuối. Ngoài ra, câu trả lời của Haskell ở đây khá khác với câu trả lời ở đó.