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