Код Senior Стек и монотонный стек обновлено
Распаковка строки
Условие
Распакуй строку вида '3[a]2[bc]' → 'aaabcbc'. Вложенность любая: '3[a2[c]]' → 'accaccacc'.
Примеры
decodeString("3[a]2[bc]") // "aaabcbc"
decodeString("3[a2[c]]") // "accaccacc"
decodeString("abc") // "abc"
Как подойти
Вложенность → стек. Два стека вместо одного делают код симметричным: открывающая скобка сохраняет контекст, закрывающая его восстанавливает. Многозначные числа (number*10 + цифра) - то, на чём падают чаще всего.
Подсказки: 3
- Два стека: накопленные числа и накопленные куски строки.
- Число может быть многозначным - набирай его по цифрам.
- На закрывающей скобке достраивай текущий кусок к тому, что лежало снаружи.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.