Inspiré par la C- directive #define
.
Défi
Étant donné une phrase avec un alias et un tableau avec chaque texte d'alias. Sortez la phrase initiale en remplaçant chaque alias par son texte respectif.
Un alias est défini par un pointu #
suivi de son index dans le tableau (l'index peut commencer à zéro ou un). L'alias peut contenir un autre alias à l'intérieur de son texte, et vous devez tous les résoudre (peut-être récursivement). Vous pouvez supposer que l'alias ne fonctionnera jamais dans une boucle infinie. L'alias n'aura pas de zéros non significatifs (ce #02
n'est pas un alias à l'index 2
, c'est un alias à l'index 0
suivi du texte 2
).
Vous pouvez supposer que le tableau ne dépassera pas 20 éléments.
Vous pouvez écrire un programme, ou une fonction ou même un #define
-il serait bien :)
Vous pouvez également utiliser une autre méthode d'entrée qui convient mieux à votre langue.
Exemple
phrase: "#0 & #3"
array: [
"Programming #1",
"Puzzles",
"Code",
"#2 Golf"
]
output: "Programming Puzzles & Code Golf"
Pas à pas:
0> "#0 & #3"
1> "Programming #1 & #2 Golf"
2> "Programming Puzzles & Code Golf"
Puisqu'il s'agit de code-golf , la réponse la plus courte en octets gagne!
Un autre échantillon
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."
Les exemples ci-dessus ont utilisé Array avec un index commençant à zéro.
#01
#0
elle ne devrait pas apparaître? Ou est#01
valide mais pas un alias (c'est-à-dire qu'il est simplement laissé tel quel)?