Натхненний C -директивом #define.
Виклик
Дано одну фразу з деяким псевдонімом і один масив з кожним текстом псевдоніма. Виведіть початкову фразу, замінивши кожен псевдонім відповідним текстом.
Псевдонім визначається одним різким, #а за ним індексом у масиві (індекс може починатися з нуля або одиниці). Псевдонім може містити інший псевдонім всередині свого тексту, і ви повинні вирішити всі їх (можливо, рекурсивно). Можна припустити, що псевдонім ніколи не зіткнеться з нескінченним циклом. Псевдонім не матиме провідних нулів ( #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"
Оскільки це код-гольф, найкоротша відповідь у байтах виграє!
Ще одні зразки
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дійсний, але не псевдонім (тобто він просто залишається таким, як є)?