#P0307. 波兰表达式

波兰表达式

题目描述

小明学习信息学知识时发现数学四则运算能结合出形式不同而结果相同的表达式来,比如:

  • 数学表达式(中缀表达式):(3 + 4) * 5 - 6
  • 波兰表达式(前缀表达式):- * + 3 4 5 6
  • 逆波兰表达式(后缀表达式):3 4 + 5 * 6 -

三种表达式的写法不同,求值过程不同,但最终结果却一样。

以波兰表达式为例,求值过程为:

  1. 准备一个栈,逆序扫描表达式
  2. 遇到数字则入栈
  3. 遇到运算符则出栈两个数做运算(先出栈的在左),运算结果再入栈
  4. 重复以上过程直到扫描结束

数字可能大于 99,除法向下取整,试编程实现。

输入格式

输入波兰表达式(数字和运算符都以空格隔开)

输出格式:

输出运算结果

样例

- * + 3 4 5 6
29
+ 10 10
20

数据范围

字符串的个数 100\le 100