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();
}
}