Как разработчик, нам иногда нужно вернуться к основным понятиям, чтобы быть более эффективными.
Здесь у нас есть постфиксноевыражение. Это математическое выражение, но с операторами, написанными после операндов, а не перед ними.
1 + 1 становится 1 1 +
1 + 2 * 3 + 4 становится 1 2 3 * + 4 +

  • поддерживается многими модными калькуляторами
  • никогда не нужно использовать скобки
  • никогда не нужно использовать символ = для оценки на калькуляторе

Напишите метод postfixEvaluate, который принимает строку постфиксного
выражения, оценивает ее и возвращает результат.
Все операнды являются целыми числами; допустимые операторы + , -, * и /

Наша функция postFixEvaluate("5 2 4 * + 7 -") возвращает 6.

Алгоритм: используйте стек

– Когда вы видите операнд, поместите его в стек.
– Когда вы видите оператор.
• извлеките последние два операнда из стека.
• примените к ним оператор.
• поместить результат в стек.
– Когда вы закончите, один оставшийся элемент стека будет результатом.

Мотивация стека/очереди

  • Иногда полезно иметь менее мощную коллекцию,
    но оптимизированную для очень быстрого выполнения определенных операций.
  • Стеки и очереди мало что делают, но делают это эффективно.

Содержание адаптировано со слайдов Марти Степп и Элен Мартин
https://www.cs.washington.edu/143/