Вдохновленный 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
действителен, но не псевдоним (то есть он просто остается как есть)?