Compresión de cadenas con recuperación mediante regla de repetición

Go Hard strings

Tarea «Compresión de cadenas con recuperación mediante regla de repetición»

Dada una cadena compuesta por letras del alfabeto latino (a-z) y dígitos (0-9). La cadena está codificada según la siguiente regla: cada grupo de caracteres seguido de un número indica que este grupo debe repetirse la cantidad de veces especificada. Por ejemplo, 'ab3c2' significa 'abababcc'. Un grupo puede ser un solo carácter o una secuencia de caracteres encerrada entre corchetes. Si el grupo no contiene corchetes, el número se refiere al último carácter. Si el número está ausente, la repetición se considera 1. Es necesario escribir un programa que tome una cadena codificada y devuelva la cadena decodificada. La longitud de la cadena decodificada no supera los 10^6 caracteres.

Formato de entrada

Una línea que contiene la secuencia codificada. La longitud de la línea no supera los 1000 caracteres.

Formato de salida

Una línea que representa la secuencia decodificada.

Ejemplos

Ejemplo 1

ENTRADA
x2y3z
SALIDA
xxyyyz

Ejemplo 2

ENTRADA
a2b[cd]3e
SALIDA
aabcdcdcde

Ejemplo 3

ENTRADA
5 1 null root 10 2 1 child1 5 3 1 child2 7 4 2 grandchild 3 5 3 another 2
SALIDA
main.go