计算
提交数: 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