#P547. 波兰表达式

波兰表达式

题目描述

波兰表达式,也被称为前缀表达式,是一种数学表达式的写法,其中运算符位于与之相关的运算数之前。这种表达式方式得名于其发明者,波兰逻辑学家雅努什·卢卡谢维奇。它与我们通常使用的中缀表达式形式不同,在中缀表达式中,运算符位于两个运算数之间(比如 A+BA + B)。而在波兰表达式中,运算符位于前面,如同 +AB+ A B

现在小可可有一个已知的波兰式,请帮他计算这个波兰式的值吧。一种计算波兰式值的方法是从右向左扫描波兰式,遇到运算符就计算,为简化计算,假设这个波兰式中只有+-两种运算符。

输入格式

共2行。

  • 第一行1个正整数nn,表示波兰式中数值的个数(包括运算符和运算数)。
  • 第二行为波兰式,其中每个数值pp由空格分隔。保证每个波兰式都是正确可计算的。

输出格式

共1行1个整数,表示波兰式的值。

输入样例#1

5 
- + 10 100 13

输出样例#1

97

输入样例#2

5 
+ 10 - 20 13

输出样例#2

17

题目说明

数据范围:

  • 1n1001 \leq n \leq 100
  • pp+-1p1001 \leq p \leq 100 的整数。

样例1解释

从右向左扫描,遇到+,则取两个数10和100,进行加法运算,10+100=11010 + 100 = 110,继续向左扫描,遇到-,则取两个数110和13,进行减法运算,11013=97110 - 13 = 97

样例2解释

从右向左扫描,遇到-,则取两个数20和13,进行减法运算,2013=720 - 13 = 7,继续向右扫描,遇到+,则取两个数10和7,进行加法运算,10+7=1710 + 7 = 17