Код 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
  1. Числа кладём в стек, оператор снимает два верхних.
  2. Порядок снятия важен: первым снимается правый операнд.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме