Декодирование строки

Средняя
61%
Python 3.12JavaScriptGo 1.17.13Java 21C#C++

Дана закодированная строка. Напишите алгоритм, который вернет её раскодированную версию.

Правило кодирования звучит так: k[закодированная_строка], где подстрока внутри квадратных скобок повторяется ровно k раз. Обратите внимание, что k гарантированно является положительным целым числом.

Вы можете исходить из того, что входная строка всегда корректна: в ней нет лишних пробелов, а все квадратные скобки правильно открываются и закрываются.

Кроме того, можно считать, что исходные раскодированные данные не содержат цифр. Цифры используются исключительно для обозначения количества повторений k. Например, во входных данных никогда не встретятся строки некорректного формата, такие как 3a или 2[4].

Пример 1:

Ввод: s = "3[a]2[bc]"
Вывод: "aaabcbc"

Пример 2:

Ввод: s = "3[a2[c]]"
Вывод: "accaccacc"

Пример 3:

Ввод: s = "2[abc]3[cd]ef"
Вывод: "abcabccdcdcdef"

Ограничения:

  • 1 <= s.length <= 30
  • Строка s состоит из строчных букв английского алфавита, цифр и квадратных скобок '[]'.
  • Строка s гарантированно является валидной.
  • Все целые числа, встречающиеся в строке s, находятся в диапазоне [1, 300].