leetcode之Evaluate Reverse Polish Notation

原创 2015年11月18日 14:27:32

这道题是很基础的数据结构知识。唯一需要注意的是6/(-32)网站给的结果是0,python给的是-1,我也不知道为什么。。。代码如下:

class Solution(object):
    def evalRPN(self, tokens):
        """
        :type tokens: List[str]
        :rtype: int
        """
        if tokens == []:
            return 0
        if tokens == ['']:
            return 0
        listofnum = []
        symbol = ['+', '-', '*', '/']
        for i in tokens:
            if i in symbol:
                a = listofnum.pop()
                b = listofnum.pop()
                if i == '+':
                    listofnum.append(int(a) + int(b))
                if i == '-':
                    listofnum.append(int(b) - int(a))
                if i == '*':
                    listofnum.append(int(a) * int(b))
                if i == '/':
                    if int(b) < 0:
                        if int(a) > 0:
                            listofnum.append(-(-int(b) / int(a)))
                        else:
                            listofnum.append(int(b) / int(a))
                    else:
                        if int(a) < 0:
                            listofnum.append(-(int(b) / (-int(a))))
                        else:
                            listofnum.append(int(b) / int(a))
            else:
                listofnum.append(int(i))
            # print listofnum
        return int(listofnum[0])


【LeetCode】Evaluate Reverse Polish Notation 解题报告

【题意】 逆波兰表达式,又叫后缀表达式。 例如: ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9 ["4", "13", "5", "/", "+"]...
  • ljiabin
  • ljiabin
  • 2014年08月28日 20:57
  • 1706

【LeetCode-面试算法经典-Java实现】【150-Evaluate Reverse Polish Notation(计算逆波兰式)】

【151-Evaluate Reverse Polish Notation(计算逆波兰式)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Evaluate the val...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月20日 06:37
  • 2741

Java Evaluate Reverse Polish Notation(逆波兰表达式)

表达式:   ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9   ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)...
  • soszou
  • soszou
  • 2014年07月05日 16:06
  • 2723

【LeetCode刷题Java版】Evaluate Reverse Polish Notation(计算逆波兰表达式)

Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -...
  • bruce_6
  • bruce_6
  • 2014年10月13日 18:02
  • 2348

LeetCode 150 — Evaluate Reverse Polish Notation(C++ Java Python)

题目:http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/ Evaluate the value of an arithm...
  • dragon_dream
  • dragon_dream
  • 2014年03月01日 15:34
  • 2478

LeetCode–Evaluate Reverse Polish Notation

LeetCode–Evaluate Reverse Polish Notation (LeetCode - 评价逆波兰表示法,即后缀表达式) By X Wang (LeetCode: 一个在线编...
  • zgljl2012
  • zgljl2012
  • 2014年05月05日 00:59
  • 1066

LeetCode题解:Evaluate Reverse Polish Notation

Evaluate Reverse Polish Notation Evaluate the value of an arithmetic expression in Reverse Poli...
  • MagiSu
  • MagiSu
  • 2013年11月28日 03:43
  • 3120

逆波兰表示法 Reverse Polish notation,RPN

逆波兰记法中,操作符置于操作数的后面。例如表达“三加四”时,写作“3 4 +”,而不是“3 + 4”。如果有多个操作符,操作符置于第二个操作数的后面,所以常规中缀记法的“3 - 4 + 5”在逆波兰记...
  • dpppBR
  • dpppBR
  • 2016年11月28日 21:50
  • 240

(leetcode)Evaluate Reverse Polish Notation

Evaluate Reverse Polish Notation 题目 Evaluate the value of an arithmetic expression in Reverse Pol...
  • fcunren
  • fcunren
  • 2014年08月18日 15:28
  • 299

Leetcode:Evaluate Reverse Polish Notation

这道题主要是用stack栈来进行逆波兰式的算法描述,实现不是很难,不过注意string类型的一些基本函数,比如:stoi(),atoi()等。 #include #include class ...
  • newfelen
  • newfelen
  • 2014年03月23日 10:29
  • 599
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode之Evaluate Reverse Polish Notation
举报原因:
原因补充:

(最多只允许输入30个字)