1、求一个后缀表达式的值
【问题描述】
从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加(+)、减(—)、乘()、除(/)四种运算符。每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以@作为结束标志。
输入:
16 9 4 3 +-@
输出:
-47
2、括号的匹配(表达式的合法性检查)
【问题描述】
假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。假设表达式长度小于255,左圆括号少于20个。
不是说好了只包含0-9吗,16是哪来的,+-又是个啥
1 6 9 4 3 +-@
这是不是少几个运算符?
后缀表达式的话5个数应该有4个运算符吧?
后缀表达式的代码:
stack=[]
s = input().strip('@').split()
for i in s:
if i.isnumeric():
stack.append(i)
else:
b = stack.pop()
a = stack.pop()
c = eval(a+i+b)
stack.append(str(c))
print(*stack)