前置条件
给定一个字符串,里面只有±*/四种基础运算和各个数字
求这个字符串的最终计算结果
使用逆波兰表达式的原因:相较于我们习惯的中缀表达式,计算机无需判断运算优先级,从左至右可以顺序处理,相对比较友好
- 栈
def evalRPN(self, tokens: List[str]) -> int:
operation = {
'+': lambda x,y : x + y,
'-': lambda x,y : x - y,
'*': lambda x,y : x * y,
'/': lambda x,y : int(x / y)}
stack = []
for i in tokens:
if i in operation:
data2 = stack.pop()
data1 = stack.pop()
stack.append(operation[i](data1,data2))
else:
stack.appen(int(i))
return stack.pop()