Elixirでは、(リンクされた)リストは、headは何でもよく、tailはリストの残りのリストの形式[head | tail]
であり、空のリストはこの唯一の例外です。[]
リストは次のようにも書くことができる[1, 2, 3]
と同等です[1 | [2 | [3 | []]]]
あなたの仕事は、説明されているようにリストを変換することです。入力は常に、正規表現に一致する数字のみを含む有効なリスト(Elixir内)になり\[(\d+(, ?\d+)*)?\]
ます。(各コンマの後にスペースが1つ)またはスペースなしで入力を行うことができます。出力は、(それぞれの前後にスペースが1つ|
)あり、またはスペースなしです。
先行ゼロのある入力の場合、ゼロなしで出力することも、出力することもできます。
入力は、出力と同様、文字列として取得する必要があります(関数を記述する場合)。
例
[] -> []
[5] -> [5 | []]
[1, 7] -> [1 | [7 | []]]
[4, 4, 4] -> [4 | [4 | [4 | []]]]
[10, 333] -> [10 | [333 | []]]
related、これは部分的にモード]
を最後に追加する必要があるため、複製ではありません。さらに、ここでのHaskellの答えはそこの答えとはまったく異なります。