题解 | #逆波兰表达式求值#

逆波兰表达式求值

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]
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务