Compression de chaîne avec restauration par règle de répétition

Go Hard strings

Tâche «Compression de chaîne avec restauration par règle de répétition»

Soit une chaîne composée de lettres de l’alphabet latin (a-z) et de chiffres (0-9). La chaîne est encodée selon la règle suivante : chaque groupe de caractères suivi d’un nombre indique que ce groupe doit être répété le nombre de fois spécifié. Par exemple, 'ab3c2' signifie 'abababcc'. Un groupe peut être un seul caractère ou une séquence de caractères encadrée par des crochets. Si le groupe ne contient pas de crochets, le nombre se rapporte au dernier caractère. Si le nombre est absent, on considère que la répétition est égale à 1. Il est nécessaire d’écrire un programme qui prend une chaîne encodée et affiche la chaîne décodée. La longueur de la chaîne décodée ne dépasse pas 10^6 caractères.

Format d\ entrée

Une seule ligne contenant la séquence encodée. La longueur de la ligne ne dépasse pas 1000 caractères.

Format de sortie

Une seule ligne — la séquence décodée.

Exemples

Exemple 1

ENTRÉE
x2y3z
SORTIE
xxyyyz

Exemple 2

ENTRÉE
a2b[cd]3e
SORTIE
aabcdcdcde

Exemple 3

ENTRÉE
5 1 null root 10 2 1 child1 5 3 1 child2 7 4 2 grandchild 3 5 3 another 2
SORTIE
main.go