Сжатие строки с восстановлением по правилу повторений
Go
Сложный
strings
Задача «Сжатие строки с восстановлением по правилу повторений»
Дана строка, состоящая из букв латинского алфавита (a-z) и цифр (0-9). Строка закодирована по следующему правилу: каждая группа символов, за которой следует число, обозначает, что эта группа должна быть повторена указанное количество раз. Например, 'ab3c2' означает 'abababcc'. Группа может быть как одним символом, так и последовательностью символов, заключенной в квадратные скобки. Если группа не содержит скобок, то число относится к последнему символу. Если число отсутствует, считается, что повторение равно 1. Необходимо написать программу, которая принимает закодированную строку и выводит раскодированную строку. Длина раскодированной строки не превышает 10^6 символов.
Формат ввода
Одна строка, содержащая закодированную последовательность. Длина строки не превышает 1000 символов.
Формат вывода
Одна строка — раскодированная последовательность.
Примеры
Пример 1
ВВОД
x2y3z
ВЫВОД
xxyyyz
Пример 2
ВВОД
a2b[cd]3e
ВЫВОД
aabcdcdcde
Пример 3
ВВОД
5
1 null root 10
2 1 child1 5
3 1 child2 7
4 2 grandchild 3
5 3 another 2
ВЫВОД
main.go