500103 - 括号匹配4
有一个简单的数学算式,仅含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种表示运算符的字符和()
。
按数学运算规则计算其结果。
Input
一行,一个长度不超过1024,仅包含题目所述17种字符的表达式。
数据保证计算结果不超过10^{18};
数据保证所有运算数为正数。
Output
一个整数,表示计算结果。
Examples
Input
(3-1)^3+(2+4)*(5^2+6*7)/(3)*(1)
Output
142
Hint
()
优先级最高
其次是^
,即乘方运算
再次是*/
,即乘除运算
最后是+-
,即加减运算
扩展思考:
本题这种表达式已经合法的题目,如果加入其他括号,代码应如何修改?
如果表达式已经合法,题目中存在多种括号并且有优先级要求,是否需要进一步处理括号优先级?