В Elixir (связанные) списки имеют формат, в [head | tail]
котором head может быть любым, а tail - списком остальной части списка, и []
- пустой список - единственное исключение из этого.
Списки также могут быть написаны как [1, 2, 3]
что эквивалентно[1 | [2 | [3 | []]]]
Ваша задача - преобразовать список, как описано. Входными данными всегда будет действительный список (в Elixir), содержащий только числа, соответствующие регулярному выражению \[(\d+(, ?\d+)*)?\]
. Вы можете взять ввод с (один пробел после каждой запятой) или без пробелов. Вывод может быть с (один пробел до и после каждого |
) или без пробелов.
Для входов с ведущими нулями вы можете выводить либо без нулей, либо с помощью.
Входные данные должны восприниматься как строка (если пишется функция), как и выходные данные.
Примеры
[] -> []
[5] -> [5 | []]
[1, 7] -> [1 | [7 | []]]
[4, 4, 4] -> [4 | [4 | [4 | []]]]
[10, 333] -> [10 | [333 | []]]
связанный , а не дубликат, так как это отчасти подразумевает добавление режима ]
до конца. Кроме того, ответ на Haskell здесь сильно отличается от ответа на этот вопрос.