• 169-150. 逆波兰表达式求值


    
    这个是逆波兰表达式(其中python3执行,否则会出现计算错误)
    class Solution(object):
    
        def evalRPN(self, tokens):
            """
            :type tokens: List[str]
            :rtype: int
            """
            operation_list = ("+", "-", "*", "/")
            stack = []
            length = len(tokens)
            if length < 1:
                return None
            for i in range(length):
                if tokens[i] not in operation_list:
                    stack.append(tokens[i])
                else:
                    if not stack:
                        return None
                    num1 = stack.pop()
                    if not stack:
                        return None
                    num2 = stack.pop()
    
                    if tokens[i] == "+":
                        result = int(num2) + int(num1)
                    elif tokens[i] == "-":
                        result = int(num2) - int(num1)
                    elif tokens[i] == "/":
                        result = int(num2) / int(num1)
                    else:
                        result = int(num2) * int(num1)
                    stack.append(result)
            return stack[-1]
    
    
    if __name__ == '__main__':
        temperatures = ["10","6","9","3","+","-11","*","/","*","17","+","5","+"]
        s1 = Solution()
        root = s1.evalRPN(temperatures)
        print(root
    
  • 相关阅读:
    排序算法(I)冒泡排序
    C#常用类string
    HashMap----工作原理
    Java计算字符串中字母出现的次数
    数据库优化
    线程和进程的区别(详细)
    SpringMVC工作原理
    jsp运行原理及运行过程
    一个公告
    SR
  • 原文地址:https://www.cnblogs.com/liuzhanghao/p/14392105.html
Copyright © 2020-2023  润新知