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]
    

      

  • 相关阅读:
    面试经验链接汇集
    258. Add Digits
    192. Word Frequency(shell)
    6、字符串循环对角线结构ZigZag Conversion
    5、最长回文子串Longest Palindromic Substring
    idea常用的快捷命令
    JAVA传输概念
    UUID随机字符串
    Bean的加载
    默认标签的解析过程(三)parseDefaultElement
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12897269.html
Copyright © 2011-2022 走看看