#10309. 后缀表达式

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: lynn

题目描述

所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。

如: 3*(5–2)+7 对应的后缀表达式为: 3.5.2.-*7.+@ @ 为表达式的结束符号。 ' . ' 为操作数的结束符号。

除法向下取整。

输入格式

输入:后缀表达式

输出格式

输出:表达式的值

样例

3.5.2.-*7.+@

16

数据范围与提示

字符串长度, 1000 内。 后缀表达式求值的过程和前缀表达式相似,由于后缀表达式运算符在操作数之后,因此按照运算符 出现的顺序需要从左往右进行。

1、设置一个栈,开始时栈为空,从左到右扫描后缀表达式,若遇操作数,则进栈。

2、如果遇到运算符,则从栈中弹出两个元素,先弹出的放到运算符的右边,后弹出的放到运算符 左边,运算后的结果再进栈。

3、重复上面的两个步骤,直到后缀表达式扫描完毕。此时,栈中仅有一个元素,即为运算的结 果。