Cディレクティブに触発されました#define
。
チャレンジ
いくつかのエイリアスを持つ1つのフレーズと、各エイリアステキストを持つ1つの配列が与えられます。各エイリアスをそれぞれのテキストに置き換える最初のフレーズを出力します。
エイリアスは、1つのシャープで定義され、#
その後に配列内のインデックスが続きます(インデックスは0または1から始まる場合があります)。エイリアスにはテキスト内に別のエイリアスを含めることができ、それらをすべて解決する必要があります(おそらく再帰的に)。エイリアスが無限ループに陥ることは決してないと想定できます。エイリアスには先行ゼロ#02
はありません(インデックスのエイリアスではなく、テキストの前の2
インデックスのエイリアス0
です2
)。
配列は長さ20項目を渡さないと想定できます。
あなたはプログラム、または関数を書くことができます-それは#define
素晴らしいでしょう:)
自分の言語により適した別のインプットメソッドを使用することもできます。
例
phrase: "#0 & #3"
array: [
"Programming #1",
"Puzzles",
"Code",
"#2 Golf"
]
output: "Programming Puzzles & Code Golf"
ステップバイステップ:
0> "#0 & #3"
1> "Programming #1 & #2 Golf"
2> "Programming Puzzles & Code Golf"
これはcode-golfなので、バイト単位の最短の回答が優先されます!
別のサンプル
phrase: "#0!"
array: [
"We are #1",
"#2",
"#3",
"#4 !",
"graduating"
]
output: "We are graduating !!"
phrase: "##0#1#0#21#3#4"
array: [
"a",
"m",
"z",
"n",
"g"
]
output: "#amaz1ng"
phrase: "##1#23"
array: [
"WEIRD",
"0 C",
"AS"
]
output: "WEIRD CAS3"
phrase: "#1#7#6y#4#7#10s#7b#11#0#0#11r#7#0h#6#5#2#5#9#4."
array: [
"t",
"#12#3",
"#11ga#3",
"#0#10v#11",
"#0h#10#8g",
"#7#8",
"a#8",
" ",
"n",
"o",
"i",
"e",
"P#9s#10"
]
output: "Positive anything is better than negative nothing."
上記の例では、インデックスがゼロから始まる配列を使用しました。
#01
#0
必要はありませんか?または#01
有効ですがエイリアスではありませんか(つまり、そのまま残されます)?