#P547. 波兰表达式
波兰表达式
题目描述
波兰表达式,也被称为前缀表达式,是一种数学表达式的写法,其中运算符位于与之相关的运算数之前。这种表达式方式得名于其发明者,波兰逻辑学家雅努什·卢卡谢维奇。它与我们通常使用的中缀表达式形式不同,在中缀表达式中,运算符位于两个运算数之间(比如 )。而在波兰表达式中,运算符位于前面,如同 。
现在小可可有一个已知的波兰式,请帮他计算这个波兰式的值吧。一种计算波兰式值的方法是从右向左扫描波兰式,遇到运算符就计算,为简化计算,假设这个波兰式中只有+
、-
两种运算符。
输入格式
共2行。
- 第一行1个正整数,表示波兰式中数值的个数(包括运算符和运算数)。
- 第二行为波兰式,其中每个数值由空格分隔。保证每个波兰式都是正确可计算的。
输出格式
共1行1个整数,表示波兰式的值。
输入样例#1
5
- + 10 100 13
输出样例#1
97
输入样例#2
5
+ 10 - 20 13
输出样例#2
17
题目说明
数据范围:
- 为
+
、-
或 的整数。
样例1解释
从右向左扫描,遇到+
,则取两个数10和100,进行加法运算,,继续向左扫描,遇到-
,则取两个数110和13,进行减法运算,。
样例2解释
从右向左扫描,遇到-
,则取两个数20和13,进行减法运算,,继续向右扫描,遇到+
,则取两个数10和7,进行加法运算,。