题目描述
链接:https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/
解题思路
把四则运算符号放到一个列表里来作判断,接着利用站的后进先用来放数字,接着判断符号,来做相应运算,把得到的值放在栈顶。
注意:python3整除用的是int(a/b)(写代码时在这里改了好久)
代码
class Solution:
def evalRPN(self, tokens) -> int:
if len(tokens)==0:
return None
fuHao=["+","-","/","*"]
elem=[]
for c in tokens:
if c not in fuHao:
elem.append(int(c))
else:
a=elem.pop()
b=elem.pop()
if i=="+":
c=a+b
elif i=="-":
c=b-a
elif i=='*':
c=a*b
else:
c=int(a/b)这里的运算符号判断用swtich也可以
elem.append(c)
return int(c)#如果只有一个元素的话,不int()会报错