#P1253. 【挑战题】前缀表达式求值

【挑战题】前缀表达式求值

题目描述

前缀表达式是一种不含括号的算术表达式,它的运算符放在两个运算数的前面,严格从右向左进行运算。例如,2+3*(7-4)+8/4的前缀表达式是:+ + 2 * 3 - 7 4 / 8 4。要计算前缀表达式的值,可以按照以下的步骤: \\step 1:从右向左扫描前缀表达式,设定一个栈来存储操作数。 \\step 2:如果当前字符是操作数,就将其压入栈中。 \\step 3:如果当前字符是运算符,就从栈中弹出两个操作数,用运算符对它们做相应的计算,然后将结果压入栈中。 \\step 4:重复上述过程,直到扫描完整个前缀表达式,最后栈中的唯一元素就是表达式的值。 \\例如,计算前缀表达式+ + 2 * 3 - 7 4 / 8 4的过程如下: \\ \\(1)扫描到4,将其压入栈中。 \\(2)扫描到8,将其压入栈中。 \\(3)扫描到/,弹出栈顶的两个数,计算8/4,得到2,将其压入栈中。 \\(4)扫描到4,将其压入栈中。 \\(5)扫描到7,将其压入栈中。 \\(6)扫描到-,弹出栈顶的两个数,计算7-4,得到3,将其压入栈中。 \\(7)扫描到3,将其压入栈中。 \\(8)扫描到*,弹出栈顶的两个数,计算3*3,得到9,将其压入栈中。 \\(9)扫描到2,将其压入栈中。 \\(10)扫描到+,弹出栈顶的两个数,计算2+9,得到11,将其压入栈中。 \\(11)扫描到+,弹出栈顶的两个数,计算11+2,得到13,将其压入栈中。 \\(12)扫描结束,栈中只有一个元素,即13,这就是前缀表达式的值。

输入格式

一个字符串,表示前缀表达式,保证每个操作数都是10以内整数,且总长度不超过50

Output

一个整数表示浅醉表达式的结果

样例 #1

样例输入 #1

++2*3-74/84

样例输出 #1

13