zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):栈类:第150题:逆波兰表达式求值:根据逆波兰表示法,求表达式的值。 有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。

    题目:

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

    说明:

    • 整数除法只保留整数部分。
    • 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。

    思路:

    使用辅助栈来实现,思路较简单,注意除法运算的整数处理就好。

    程序:

    class Solution:
        def evalRPN(self, tokens: List[str]) -> int:
            if not tokens:
                return 0
            length = len(tokens)
            stack1 = []
            stack2 = []
            for index in range(length):
                if tokens[index] not in "+-*/":
                    stack1.append(int(tokens[index]))
                else:
                    stack2.append(stack1.pop())
                    stack2.append(stack1.pop())
                    num1 = stack2.pop()
                    num2 = stack2.pop()
                    if tokens[index] == "+":
                        auxiliary = num1 + num2
                    elif tokens[index] == "-":
                        auxiliary = num1 - num2
                    elif tokens[index] == "*":
                        auxiliary = num1 * num2
                    else:
                        auxiliary = int(num1 / num2)
                    stack1.append(auxiliary)
            return stack1[-1]
    

      

  • 相关阅读:
    Linux命令大全之关机重启命令
    Linux命令大全之帮助命令及压缩命令
    Linux命令大全之搜索命令
    Linux命令大全之基本命令
    Linux安装界面简介
    Linux 的ftp服务未启用怎么办
    创建分区表
    Linux分区,格式化概念理解
    VMware简介
    Linux简介
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12897269.html
Copyright © 2011-2022 走看看