#P19. 计算中缀表达式的值

计算中缀表达式的值

题目描述

小明在你的帮助下,破密了Ferrari设的密码门,正要往前走,突然又出现了一个密码门,门上有一个算式,0123456789+-*/^(),求出的值就是密码。小明数学学得不好,还需你帮他的忙。("/"用整数除法)

输入格式

输入仅一行,是一个中缀表达式。输入的符号中只有这些基本符号 0123456789+-*/^(),并且不会出现形如 2*-3 的格式。

表达式中的数字可能出现多位数,比如12*34,但是任何数字都不会超过int的范围。

保证输入的字符串是正确的算式,不需要判错。

输出格式

输出一个整数,代表密码。

【输入输出样例#1】

输入#1

1+(3+2)*(7^2+6*9)/(2)

输出#1

258

【输入输出样例#2】

输入#2

5*2^3^2+(2^3)^2

输出#2

2624

说明提示

样例 2 解释

乘方运算 ^ 是从右向左结合的,即 2 ^ 3 ^ 22 ^ (3 ^ 2)

其他同优先级的运算是从左向右结合的,即 4 / 2 / 2 * 2((4 / 2) / 2) * 2

数据范围

对于 100 100% 的算式,保证式子只有0123456789+-*/^(),长度小于100 100 ,所有数字以及结果都在 int int 范围内。