Inspiriert von der C- Direktive #define.
Herausforderung
Gegeben eine Phrase mit einem Alias und ein Array mit jedem Alias-Text. Geben Sie die ursprüngliche Phrase aus und ersetzen Sie jeden Alias durch den entsprechenden Text.
Ein Alias wird durch einen Punkt definiert, #gefolgt von seinem Index im Array (der Index kann bei Null oder Eins beginnen). Der Alias kann einen anderen Alias in seinem Text enthalten, und Sie müssen alle auflösen (möglicherweise rekursiv). Sie können davon ausgehen, dass der Alias niemals in eine Endlosschleife gerät. Alias hat keine führenden Nullen ( #02ist kein Alias am Index 2, sondern ein Alias am Index, 0gefolgt vom Text 2).
Sie können davon ausgehen, dass das Array nicht länger als 20 Elemente ist.
Du kannst ein Programm schreiben oder eine Funktion oder sogar ein #define-es wäre schön :)
Sie können auch eine andere Eingabemethode verwenden, die besser zu Ihrer Sprache passt.
Beispiel
phrase: "#0 & #3"
array: [
"Programming #1",
"Puzzles",
"Code",
"#2 Golf"
]
output: "Programming Puzzles & Code Golf"
Schritt für Schritt:
0> "#0 & #3"
1> "Programming #1 & #2 Golf"
2> "Programming Puzzles & Code Golf"
Da dies Code-Golf ist , gewinnt die kürzeste Antwort in Bytes!
Ein weiteres Beispiel
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."
In den obigen Beispielen wurde ein Array mit einem Index verwendet, der bei Null beginnt.
#01
#0sie nicht angezeigt werden sollte? Oder ist#01gültig, aber kein Alias (dh es bleibt einfach so wie es ist)?