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

逆波兰表达式求值

https://www.nowcoder.com/practice/885c1db3e39040cbae5cdf59fb0e9382

from operator import add, sub ,mul, truediv
class Solution:
    def evalRPN(self , tokens: List[str]) -> int:
        num_stack = []
        method = {"+": add, "-": sub, "*": mul, "/": truediv}
        while tokens:
            i = tokens.pop(0)
            if i in method:
                if i == "/":
                    a = num_stack.pop()
                    b= num_stack.pop()
                    output = int( b/a)
                    num_stack.append(output)
                elif i == "-":
                    output = int(-num_stack.pop() + num_stack.pop())
                    num_stack.append(output)
                else:
                    output = method[i](num_stack.pop() , num_stack.pop())
                    num_stack.append(output)
            else:
                num_stack.append(int(i))
        return num_stack.pop()
                
#python入门#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务