500103 - 括号匹配4

时间限制

1000 毫秒

内存限制

128 MB

通过次数

13

提交次数

51

有一个简单的数学算式,仅含0、1、2、3、4、5、6、7、8、9这10种表示数字的字符以及:

+:加法,如3+2结果为5;

-:减法,如3-2结果为1;

*:乘法,如3*2结果为6;

/:整除,如3/2结果为1;

^:乘方,如3^2结果为9;

这5种表示运算符的字符和()

按数学运算规则计算其结果。

输入

一行,一个长度不超过1024,仅包含题目所述17种字符的表达式。

数据保证计算结果不超过10^{18}

数据保证所有运算数为正数。

输出

一个整数,表示计算结果。

样例

输入

(3-1)^3+(2+4)*(5^2+6*7)/(3)*(1)

输出

142

提示

()优先级最高

其次是^,即乘方运算

再次是*/,即乘除运算

最后是+-,即加减运算

扩展思考:

本题这种表达式已经合法的题目,如果加入其他括号,代码应如何修改?

如果表达式已经合法,题目中存在多种括号并且有优先级要求,是否需要进一步处理括号优先级?