Код Middle Стек и монотонный стек обновлено
Обратная польская запись
Условие
Вычисли выражение в постфиксной записи: ['2','1','+','3','*'] → 9. Деление целочисленное с отбрасыванием дробной части.
Примеры
evalRPN(["2", "1", "+", "3", "*"]) // 9
evalRPN(["4", "13", "5", "/", "+"]) // 6
evalRPN(["5", "1", "2", "+", "4", "*", "+", "3", "-"]) // 14
Как подойти
Порядок операндов - главная ловушка: b снимается первым, значит операция a op b. Math.trunc, а не Math.floor: для отрицательных они дают разное (−2 против −3).
Подсказки: 2
- Числа кладём в стек, оператор снимает два верхних.
- Порядок снятия важен: первым снимается правый операнд.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.