栈是一种重要的数据结构,它具有后进先出(Last In First Out,LIFO)的特点。可以把栈想象成一叠盘子,最后放上去的盘子会最先被拿走。
栈的基本操作
后缀表达式: https://leetcode.cn/problems/8Zf90G/
OPS = ["+", "-", "*", "/"]
def calc(arg0, op, arg1):
if op == "+":
return int(arg0) + int(arg1)
elif op == "-":
return int(arg0) - int(arg1)
elif op == "*":
return int(arg0) * int(arg1)
elif op == "/":
return int(int(arg0) / int(arg1))
else:
return None
class Solution:
def evalRPN(self, tokens: List[str]) -> int:
stack = []
for token in tokens:
if token not in OPS:
stack.append(token)
else:
arg1 = stack.pop()
arg0 = stack.pop()
res = calc(arg0, token, arg1)
stack.append(res)
return int(stack.pop())