1、逆波兰表达式
题目:
https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/
def main(tokens):
#逆波兰表达式
op_to_binary_fn = {
"+": lambda x, y: int(x+y),
"-": lambda x, y: int(x-y),
"*": lambda x, y: int(x*y),
"/": lambda x, y: int(x/y),
}
stack = list()
for token in tokens:
try:
num = int(token)
except ValueError:
num2 = stack.pop()
num1 = stack.pop()
num = op_to_binary_fn[token](num1, num2)
finally:
stack.append(num)
return stack[0]
if __name__=='__main__':
tokens = list(map(str,input().strip().split(' ')))
print(main(tokens))
描述
请写一个整数计算器,支持加减乘三种运算和括号。
示例1
输入:"1+2"
返回值:3
示例2
输入:"(2*(3-4))*5"
返回值:-10
示例3
输入:"3+2*3*4-1"
返回值:26