#P11896. 逆波兰表达式
逆波兰表达式
题目描述
逆波兰表达式(后缀表达式)是波兰逻辑学家 J. 卢卡西维兹于 1929 年提出的一种表达式表示方法。
- 在逆波兰表达式中,运算数写在前面,运算符写在后面
- 例如:
a + b的逆波兰式为a b +a + b - c的逆波兰式为a b + c -a + (b - c)的逆波兰式为a b c - +
现在,小可可有一个已知的逆波兰式,请你计算该表达式的值。
- 计算方法:从左向右扫描逆波兰式,遇到运算符就进行运算
- 假设逆波兰式中只有
+和-两种运算符
输入格式
共 2 行:
- 第一行:正整数 n,表示逆波兰式中元素的个数(包括运算符和运算数)
- 第二行:逆波兰式,每个元素 p 由空格分隔。p 为运算符
+、-或 1 ≤ p ≤ 100 的整数
保证每个逆波兰式都是正确可计算的。
输出格式
共 1 行,一个整数,表示逆波兰式的计算结果。
输入样例 #1
5
10 100 + 13 -
输出样例 #1
97
输入样例 #2
5
10 20 13 - +
输出样例 #2
17
题目说明
- 数据范围:1 ≤ n ≤ 100
- p 为
+、-或 1 ≤ p ≤ 100 的整数
样例解析
样例1:从左向右扫描,遇到 +,取前两个数 10 和 100,相加得到 110;继续扫描,遇到 -,取前两个数 110 和 13,相减得到 97。
样例2:从左向右扫描,遇到 -,取前两个数 20 和 13,相减得到 7;继续扫描,遇到 +,取前两个数 10 和 7,相加得到 17。