题解 | #逆波兰表达式求值#
逆波兰表达式求值
http://www.nowcoder.com/practice/885c1db3e39040cbae5cdf59fb0e9382
AB4 逆波兰表达式求值
思路:
step1:创建一个空栈stack,遍历tokens;
step2:i属于加减乘除,分别对ab赋值,进行运算并添加到stack中;
step3:如果i不属于加减乘除,将i添加到stack中;
step4:最终返回栈第一个元素;
代码如下:
class Solution:
def evalRPN(self , tokens: List[str]) -> int:
stack = []
for i in tokens:
if i in '+-*/':
a = stack.pop()
b = stack.pop()
if i == '+':
stack.append(b+a)
if i == '-':
stack.append(b-a)
if i == '*':
stack.append(b*a)
if i == '/':
stack.append(int(b/a))
else:
stack.append(int(i))
return stack[0]