题目描述
题目链接
根据 逆波兰表示法,求表达式的值。
有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。
示例
输入: [“2”, “1”, “+”, “3”, “*”]
输出: 9
解释: 该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9
题解
后缀表达式,当遇到不是运算符时压栈,碰到运算符时出栈计算,利用python 的eval函数可以很轻松的计算出
class Solution:
def evalRPN(self, tokens: List[str]) -> int:
satck=[]
for e in tokens:
if e not in "+-*/":
satck.append(e)
else:
num1=satck.pop()
num2=satck.pop()
satck.append(str(int(eval(num2+e+num1))))
return int(satck[-1])