Votre défi consiste à élargir certaines parenthèses dans la contribution d'un programme, comme indiqué:
- Recherchez une chaîne s entre deux crochets correspondants
[
et]
, avec un seul chiffre n après le crochet de fermeture. - Retirez les crochets.
- Remplacez s par lui-même répété n fois. (Si n est 0, supprimez simplement s .)
- Passez à l'étape 1 jusqu'à ce qu'il n'y ait plus de crochets correspondants dans l'entrée.
Règles supplémentaires et clarifications:
- Vous allez prendre une entrée et donner une sortie par tout moyen autorisé.
- Un retour à la ligne final dans la sortie est autorisé.
- Vous devez uniquement gérer l’ASCII imprimable dans l’entrée.
- Vous pouvez supposer que tous les crochets correspondent, c'est-à-dire que vous ne recevrez jamais l'entrée
[]]]]
ou[[[[]
. - Vous pouvez supposer que chaque parenthèse fermante
]
est suivie d'un chiffre.
Cas de test:
Input -> Output
[Foo[Bar]3]2 -> FooBarBarBarFooBarBarBar
[one]1[two]2[three]3 -> onetwotwothreethreethree
[three[two[one]1]2]3 -> threetwoonetwoonethreetwoonetwoonethreetwoonetwoone
[!@#[$%^[&*(]2]2]2 -> !@#$%^&*(&*($%^&*(&*(!@#$%^&*(&*($%^&*(&*(
[[foo bar baz]1]1 -> foo bar baz
[only once]12 -> only once2
[only twice]23456789 -> only twiceonly twice3456789
[remove me!]0 ->
before [in ]2after -> before in in after
S'agissant de code-golf , la réponse la plus courte dans chaque langue est gagnante. Bonne chance!
s
ne doit jamais contenir d'autres crochets? Par exemple, une tentative de résolution [Foo[Bar]3]2
en développant la chaîne Foo[Bar
3 fois entraînerait un état non valideFoo[BarFoo[BarFoo[Bar]2
[a[b]2c[d]2e]2
? Vous obtenez abbcddeabbcdde
en développant b
et en d
premier, mais ababcdbcdedbabcdbcdede
en développant a[b
et en d]2e
premier.