May 07, 2022

150. Evaluate Reverse Polish Notation

150. Evaluate Reverse Polish Notation

Stack. Time=O(n), space=O(n)

class Solution {
    public int evalRPN(String[] tokens) {
        Deque<Integer> stack = new ArrayDeque<>();
        for (String token : tokens) {
            if (token.equals("+") || token.equals("-") || token.equals("*") || token.equals("/")) {
                int number1 = stack.pop();
                int number2 = stack.pop();
                if (token.equals("+") ) {
                   stack.push(number1 + number2);
                } else if (token.equals("-")) {
                    stack.push(number2 - number1);
                } else if (token.equals("*")) {
                    stack.push(number1 * number2);
                } else {
                    stack.push(number2 / number1);
                }
            } else {
                stack.push(Integer.parseInt(token));
            }
        }
        return stack.pop();
    }
}
comments powered by Disqus