W Elixir listy (połączone) mają format, w [head | tail]
którym nagłówek może być dowolny, a tail jest listą reszty listy, a []
- pusta lista - jest jedynym wyjątkiem.
Listy można również pisać tak, jak [1, 2, 3]
to jest równoważne[1 | [2 | [3 | []]]]
Twoim zadaniem jest konwersja listy zgodnie z opisem. Dane wejściowe zawsze będą prawidłową listą (w eliksirach) zawierającą tylko liczby pasujące do wyrażenia regularnego \[(\d+(, ?\d+)*)?\]
. Możesz wprowadzić dane za pomocą (po jednym spacji po każdym przecinku) lub bez spacji. Wyjście może być ze (jedna spacja przed i po każdej |
) lub bez spacji.
W przypadku danych wejściowych z zerami wiodącymi można wyprowadzać dane bez zer lub z.
Dane wejściowe należy traktować jako ciąg znaków (w przypadku pisania funkcji), podobnie jak dane wyjściowe.
Przykłady
[] -> []
[5] -> [5 | []]
[1, 7] -> [1 | [7 | []]]
[4, 4, 4] -> [4 | [4 | [4 | []]]]
[10, 333] -> [10 | [333 | []]]
powiązane , a nie duplikat, ponieważ częściowo wiąże się to z dodaniem trybu ]
do końca. Dodatkowo, odpowiedź Haskella tutaj jest zupełnie inna niż tam.