首页 > 其他 > 详细

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

时间:2021-02-09 12:18:15      阅读:24      评论:0      收藏:0      [点我收藏+]

这个是逆波兰表达式(其中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

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

原文:https://www.cnblogs.com/liuzhanghao/p/14392105.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!