Su desafío es expandir algunos corchetes en la entrada de un programa como se muestra:
- Encuentre una cadena s entre dos corchetes coincidentes
[
y]
, con un solo dígito n después del corchete de cierre. - Retirar los soportes.
- Reemplace s con sí mismo repetido n veces. (Si n es 0, simplemente elimine s .)
- Vaya al paso 1 hasta que no haya más corchetes coincidentes en la entrada.
Reglas y aclaraciones adicionales:
- Tomará entrada y dará salida a través de cualquier medio permitido.
- Se permite una nueva línea final en la salida.
- Solo necesita manejar ASCII imprimible en la entrada.
- Puede suponer que todos los corchetes coinciden, es decir, nunca recibirá la entrada
[]]]]
o[[[[]
. - Puede suponer que cada paréntesis de cierre
]
tiene un dígito después.
Casos de prueba:
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
Como se trata de código de golf , gana la respuesta más corta en cada idioma. ¡Buena suerte!
s
nunca debe contener otros corchetes? Por ejemplo, intentar resolver [Foo[Bar]3]2
expandiendo la cadena Foo[Bar
3 veces resultaría en un estado inválidoFoo[BarFoo[BarFoo[Bar]2
[a[b]2c[d]2e]2
? Se obtiene abbcddeabbcdde
expandiéndose b
y d
primero, pero ababcdbcdedbabcdbcdede
expandiéndose a[b
y d]2e
primero.