Leetcode 150. Evaluate Reverse Polish Notation
问题描述:求逆波兰式。
这个问题在学习数据结构的时候很常见了,就是遇到数字压入栈,遇到符号从栈里弹出两个数计算结果、压入栈。
代码实现如下:
class Solution:
def evalRPN(self, tokens):
"""
:type tokens: List[str]
:rtype: int
"""
ops = "-+*/"
s = []
while tokens:
v = tokens.pop(0)
if v in ops:
v2 = s.pop()
v1 = s.pop()
s.append(self.operate(v,int(v1),int(v2)))
else:
s.append(v)
return int(s[-1])
def operate(self,op,v1,v2):
if op == "-":
return v1 - v2
elif op == "+":
return v1 + v2
elif op == "/":
return v1 / v2
elif op == "*":
return v1 * v2