Description
https://leetcode.com/problems/evaluate-reverse-polish-notation/
Solving Ideas
逆波兰表达式又称后缀表达式,是四则运算的表达方式。
- 中缀表达式:3 * (2 + 1)
- 前缀表达式:*3+21
- 后缀表达式:321+*
Solution
import java.util.LinkedList;
class Solution {
public int evalRPN(String[] tokens) {
LinkedList<Integer> stack = new LinkedList<>();
for(String str : tokens){
if(str.equals("+")) stack.push(stack.pop() + stack.pop());
else if(str.equals("-")) stack.push(-(stack.pop() - stack.pop()));
else if(str.equals("*")) stack.push(stack.pop() * stack.pop());
else if(str.equals("/")){
int num2 = stack.pop(), num1 = stack.pop();
stack.push(num1 / num2);
}else stack.push(Integer.valueOf(str));
}
return stack.pop();
}
}