leetcode——150. 逆波兰表达式求值

class Solution(object):
    def evalRPN(self, tokens):
        """
        :type tokens: List[str]
        :rtype: int
        """
        stack=[]
        for i in tokens:
            if i not in ‘+-*/‘:
                stack.append(i)
            else:
                a=stack.pop()
                b=stack.pop()
                if i==‘+‘:
                    c=int(a)+int(b)
                    stack.append(c)
                if i==‘-‘:
                    c = int(b) - int(a)
                    stack.append(c)
                if i==‘*‘:
                    c = int(a) * int(b)
                    stack.append(c)
                if i==‘/‘:
                    c = int(b) / int(a)
                    if int(a)*int(b)<0 and int(b)!=c*int(a):
                        c=c+1
                    stack.append(c)
        return stack.pop()

执行用时 :60 ms, 在所有 python 提交中击败了92.56%的用户

内存消耗 :13.7 MB, 在所有 python 提交中击败了6.25%的用户

——2019.11.2

原文地址:https://www.cnblogs.com/taoyuxin/p/11782379.html

时间: 2024-10-07 17:28:36

leetcode——150. 逆波兰表达式求值的相关文章

[LeetCode] 150. 逆波兰表达式求值

题目链接 : https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/ 题目描述: 根据逆波兰表示法,求表达式的值. 有效的运算符包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说明: 整数除法只保留整数部分. 给定逆波兰表达式总是有效的.换句话说,表达式总会得出有效数值且不存在除数为 0 的情况. 示例: 示例 1: 输入: ["2", "1", &qu

leetcode 150. 逆波兰表达式求值(栈)

根据逆波兰表示法,求表达式的值. 有效的运算符包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说明: 整数除法只保留整数部分. 给定逆波兰表达式总是有效的.换句话说,表达式总会得出有效数值且不存在除数为 0 的情况. 示例 1: 输入: ["2", "1", "+", "3", "*"] 输出: 9 解释: ((2 + 1) * 3) = 9 示例 2: 输入: [&qu

LeetCode:逆波兰表达式求值【150】

LeetCode:逆波兰表达式求值[150] 题目描述 根据逆波兰表示法,求表达式的值. 有效的运算符包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说明: 整数除法只保留整数部分. 给定逆波兰表达式总是有效的.换句话说,表达式总会得出有效数值且不存在除数为 0 的情况. 示例 1: 输入: ["2", "1", "+", "3", "*"] 输出: 9 解释: ((2

lintcode 中等题:Evaluate Reverse Polish notation逆波兰表达式求值

题目 逆波兰表达式求值 在逆波兰表达法中,其有效的运算符号包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰计数表达. 样例 ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9 ["4", "13", "5", "/", "+"]

逆波兰表达式求值424

1.求逆波兰表达式的值. 在逆波兰表达法中,其有效的运算符号包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰计数表达. ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9 ["4", "13", "5", "/", "+"] -

逆波兰表达式求值

根据逆波兰表示法,求表达式的值. 有效的运算符包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说明: 整数除法只保留整数部分. 给定逆波兰表达式总是有效的.换句话说,表达式总会得出有效数值且不存在除数为 0 的情况. 示例 1: 输入: ["2", "1", "+", "3", "*"] 输出: 9 解释: ((2 + 1) * 3) = 9 示例 2: 输入: [&qu

[Swift]LeetCode150. 逆波兰表达式求值 | Evaluate Reverse Polish Notation

Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, *, /. Each operand may be an integer or another expression. Note: Division between two integers should truncate toward zero. The given RPN expression

求解逆波兰表达式的值

题目: Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, *, /. Each operand may be an integer or another expression. Some examples:   ["2", "1", "+", "3", "*"

栈的应用之求逆波兰表达式的值

1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<ctype.h> 4 5 #define OK 1 6 #define ERROR 0 7 #define STACK_INIT_SIZE 20 8 #define STACK_INCREMENT 10 9 #define DIGITBUFFER 10 10 11 typedef int Status; 12 typedef double Elemtype; 13 t