美文网首页
逆波兰表示法 Python

逆波兰表示法 Python

作者: vckah | 来源:发表于2018-09-16 20:51 被阅读0次

给定一个逆波兰表示法,计算表达式的值。

逆波兰表示:又名后缀表达式,二元运算符置于两个运算对象之后,例如 2 + 1 写作 2 1 +,3 * 4 写作 3 4 *(2 + 1) * 3写作 2 1 + 3 *

解题思路:利用栈的思想。两个数在栈顶,紧跟着运算符,只需将栈顶的两个数弹出,然后运算即可。

def calucate(s):
    stack = []
    opers = ['+', '-', '*', '/']
    for c in s:
        if c not in opers:
            stack.append(int(char))
        else:
            top1 = stack.pop()
            top2 = stack.pop()
            if c == '+':
                stack.append(top2 + top1)
            elif c == '-':
                stack.append(top2 - top1)
            elif c == '*':
                stack.append(top2 * top1)
            elif c == '/':
                stack.append(int(top2 / top1))
    return stack.pop()

if __name__ == '__main__':
    # s = input().split()
    s = '2 1 + 3 *'
    print(calucate(s))

相关文章

  • 逆波兰表示法 Python

    给定一个逆波兰表示法,计算表达式的值。 逆波兰表示:又名后缀表达式,二元运算符置于两个运算对象之后,例如 2 + ...

  • ARTS第七周20200705

    Algorithm 逆波兰表达式求值 根据 逆波兰表示法,求表达式的值。 有效的运算符包括 +, -, *, / ...

  • 后缀(逆波兰)表示法

    后缀表示法是对栈的典型应用,所谓后缀表示法就是将我们平时所用的四则运算表达式(中缀表示法)以不需要括号,表示成计算...

  • 汪都能理解的逆波兰计算器(C++实现)

    简介 EXPLANATION 逆波兰表示法(Reverse Polish notation, RPN)也称作后缀表...

  • LeetCode-150- 逆波兰表达式求值

    逆波兰表达式求值 题目描述:根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是...

  • Day75 逆波兰表达式求值

    根据 逆波兰表示法,求表达式的值。 有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰...

  • LeetCode之Reverse Polish Notation

    1. 关于Reverse Polish Notation 摘自 维基百科 的解释: 逆波兰表示法(Reverse ...

  • 力扣(LeetCode) -150 逆波兰表达式求值

    本题考察的是后缀(逆波兰)表达式和栈的使用 题目描述 根据逆波兰表示法,求表达式的值。 有效的运算符包括 +, -...

  • 逆波兰表示

    20世纪50年代,波兰逻辑学家提出了一种不需要括号的后缀表示法,也成为逆波兰(Reverse Polish Not...

  • Leetcode150 Evaluate Reverse Pol

    根据逆波兰表示法,求表达式的值。 有效的运算符包括+,-,*,/。每个运算对象可以是整数,也可以是另一个逆波兰表达...

网友评论

      本文标题:逆波兰表示法 Python

      本文链接:https://www.haomeiwen.com/subject/ybifnftx.html