No Elixir, as listas (vinculadas) estão no formato em [head | tail]
que head pode ser qualquer coisa e tail é uma lista do restante da lista, e[]
- a lista vazia - é a única exceção a isso.
As listas também podem ser escritas como o [1, 2, 3]
equivalente a[1 | [2 | [3 | []]]]
Sua tarefa é converter uma lista como descrito. A entrada sempre será uma lista válida (no Elixir) contendo apenas números correspondentes ao regex \[(\d+(, ?\d+)*)?\]
. Você pode levar a entrada com (um espaço após cada vírgula) ou sem espaços. A saída pode estar com (um espaço antes e depois de cada|
) ou sem espaços.
Para entradas com zeros iniciais, você pode emitir sem os zeros ou com.
A entrada deve ser tomada como uma sequência de caracteres (se estiver gravando uma função), assim como a saída.
Exemplos
[] -> []
[5] -> [5 | []]
[1, 7] -> [1 | [7 | []]]
[4, 4, 4] -> [4 | [4 | [4 | []]]]
[10, 333] -> [10 | [333 | []]]
relacionados , não uma duplicata, pois isso envolve, em parte, o modo de adição ]
até o final. Além disso, a resposta de Haskell aqui é bem diferente da resposta de lá.