后缀表达式求值

题目内容

题目描述

我们熟悉的表达式如a+b、a+b*(c+d)等都属于中缀表达式。中缀表达式就是运算符在两个操作数中间:num1运算符num2。同理,后缀表达式就是运算符在两个操作数之后:num1 num2运算符。现在,给出一个后缀表达式,请你编写程序求出表达式 。为了简单一些,后缀表达式中的所有操作数都只有一位数字。
数据保证,输入的字符串一定是合法的后缀表达式,且后缀表达式的长度不超过100。

输入描述

输入一行,包括一个字符串,为后缀表达式,字符之间没有空格。

输出描述

输出一行,包含一个整数,代表后缀表达式的值。

样例输入

12+3*84/-

样例输出

7

提示

至右扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(次栈顶元素 op 栈顶元素),并将结果入栈;重复上述过程直到表达式最右端,最后运算得出的值即为表达式的结果。 

例如后缀表达式“34+5*6-”: 

(1) 从左至右扫描,将3和4压入堆栈;

(2) 遇到+运算符,因此弹出4和3(4为栈顶元素,3为次顶元素,注意与前缀表达式做比较),计算出3+4的值,得7,再将7入栈;

(3)将5入栈;

(4) 接下来是*运算符,因此弹出5和7,计算出75=35,将35入栈; 

(5) 将6入栈;
提交评测
请登录后再操作

题目描述

后缀表达式求值
1536
0
08Level6
59
25
42%
证书查询 x
请输入证书编号:

请输入正确的证书编号

学员姓名:孙兴民

课程:Scratch Level 1

发证日期:2019.08.15

证书查询

该证书不存在