Dalam Elixir, daftar (ditautkan) berada dalam format di [head | tail]
mana head bisa berupa apa saja dan ekor adalah daftar dari sisa daftar, dan []
- daftar kosong - adalah satu-satunya pengecualian untuk ini.
Daftar juga dapat ditulis seperti [1, 2, 3]
yang setara dengan[1 | [2 | [3 | []]]]
Tugas Anda adalah mengonversi daftar seperti yang dijelaskan. Input akan selalu menjadi daftar yang valid (di Elixir) yang hanya berisi angka yang cocok dengan regex \[(\d+(, ?\d+)*)?\]
. Anda dapat mengambil input dengan (satu spasi setelah setiap koma) atau tanpa spasi. Output mungkin dengan (satu spasi sebelum dan sesudah masing-masing |
) atau tanpa spasi.
Untuk input dengan angka nol di depan, Anda dapat membuat output tanpa angka nol atau dengan.
Input harus diambil sebagai string (jika menulis fungsi), seperti halnya output.
Contohnya
[] -> []
[5] -> [5 | []]
[1, 7] -> [1 | [7 | []]]
[4, 4, 4] -> [4 | [4 | [4 | []]]]
[10, 333] -> [10 | [333 | []]]
terkait , bukan duplikat karena ini sebagian melibatkan penambahan mode ]
ke akhir. Selain itu, jawaban Haskell di sini sangat berbeda dengan yang ada di sana.