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
原文地址:https://www.cnblogs.com/liuzhanghao/p/14392105.html