class Solution:
def evalRPN(self, tokens: List[str]) -> int:
stack = []
for i in tokens:
if i in {"+","-","*","/"}:
last = stack.pop()
first = stack.pop()
#eval()将字符串表达式转化为正常表达式
# f'{变量名}' 允许动态更新字符串内容,最后返回字符串
ans = int(eval( f' {first} {i} {last} ' ))
stack.append(ans)
else:
stack.append(i)
return int(stack.pop())
思路:
此题比较简单
将数字依次入栈,每逢operator就将栈顶元素和次栈顶元素弹出做运算;
运算结果压入栈中参与下次运算。
逆波兰表达式只要根据从左至右的顺序进行计算就可以得到和中缀表达式一样的最终答案

本文介绍了一种解决逆波兰表达式求值问题的方法。通过使用栈结构存储数字,并在遇到操作符时进行相应的计算,可以高效地求解逆波兰表达式的值。
330

被折叠的 条评论
为什么被折叠?



