150 Evaluate Reverse Polish Notation

150 Evaluate Reverse Polish Notation

这道题唯一要注意的是 python 中 eval("3/-5") 会得到-1 而不是0, 因此使用 int(eval("3/-5."))可以得到0, 即在待计算的string后面加一个"."就能解决这个问题

class Solution:
    # @param {string[]} tokens
    # @return {integer}
    def evalRPN(self, tokens):
        stack = []
        for t in tokens:
            if t in ["+", "-", "*", "/"]:
                b = stack.pop()
                a = stack.pop()
                c = eval(a + t + b + '.')
                stack.append(str(int(c)))
            else:
                stack.append(t)
        return int(stack[0])

 

posted @ 2015-07-09 13:04  dapanshe  阅读(110)  评论(0编辑  收藏  举报