leetcode150
时间: 2024-04-04 13:28:35 浏览: 22
LeetCode 150题是关于逆波兰表达式求值的问题。逆波兰表达式是一种不需要括号来标识操作符优先级的数学表达式表示方法。在这个问题中,给定一个逆波兰表达式,需要计算出其结果。
解决这个问题的一种常见方法是使用栈。遍历逆波兰表达式,当遇到数字时,将其入栈;当遇到操作符时,从栈中弹出两个数字进行计算,并将结果再次入栈。最后,栈中剩下的数字即为表达式的结果。
以下是解决这个问题的示例代码:
```python
def evalRPN(tokens):
stack = []
operators = ["+", "-", "*", "/"]
for token in tokens:
if token not in operators:
stack.append(int(token))
else:
num2 = stack.pop()
num1 = stack.pop()
if token == "+":
stack.append(num1 + num2)
elif token == "-":
stack.append(num1 - num2)
elif token == "*":
stack.append(num1 * num2)
elif token == "/":
stack.append(int(num1 / num2))
return stack[0]
# 示例输入
tokens = ["2", "1", "+", "3", "*"]
print(evalRPN(tokens)) # 输出: 9
```