计算

提交数: 195, 通过率: 35.9%, 平均分: 47.38

题目描述:

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

输入格式:

1行,为一个算式。

输出格式:

1行,就是密码。

样例输入:

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

样例2:
2*3+5

样例输出:

样例1:
258

样例2:
11

提示:

100%的数据满足:算式长度<=30 其中所有数据在int的范围内。

注意:运算数可能为0

 

中缀表达式转后缀表达式,具体规则如下:

(1)遇到数直接输出,不进栈;

(2)遇到运算符或括号:

       1) 左括号,直接进栈;

       2)右括号,把栈中的运算符依次出栈,直到碰到第一个左括号为止;

       3)运算符,把栈中优先级别大于等于它的运算符依次出栈,直到左括号或栈底。

 

后缀表达式计算时没有括号,运算符没有任何优先级别,具体规则如下:

(1)遇到数压入堆栈;

(2)遇到运算符,从栈中取两个数(取走后弹掉),按该运算符进行运算,运算后把结果重新压回堆栈。

时间限制: 1000ms
空间限制: 128MB