150. 逆波兰表达式求值
150. Evaluate Reverse Polish Notation
题目描述
根据逆波兰表示法,求表达式的值。
有效的运算符包括 +, -, *, /。每个运算对象可以是整数,也可以是另一个逆波兰表达式。
说明:
每日一算法2019/5/27Day 24LeetCode150. Evaluate Reverse Polish Notation
示例 1:
示例 2:
示例 3:
Java 实现
import java.util.Stack;
class Solution {
public int evalRPN(String[] tokens) {
Stack<Integer> stack = new Stack<>();
int a, b;
for (String str : tokens) {
switch (str) {
case "+":
a = stack.pop();
b = stack.pop();
stack.push(b + a);
break;
case "-":
a = stack.pop();
b = stack.pop();
stack.push(b - a);
break;
case "*":
a = stack.pop();
b = stack.pop();
stack.push(b * a);
break;
case "/":
a = stack.pop();
b = stack.pop();
stack.push(b / a);
break;
default:
stack.push(Integer.valueOf(str));
break;
}
}
return stack.pop();
}
}
相似题目
参考资料
LeetCode 150. 逆波兰表达式求值(Evaluate Reverse Polish Notation) 24
原文:https://www.cnblogs.com/hglibin/p/10933438.html