解题思路:
由于题中所给出的式子为字符串形式且为多项式,故计算机无法直接解析算式。所以需要设计一种解析算法,这其中最大的难点便是优先级问题。对于该问题,我们可以利用数据结构中的栈来解决,即:我们按照运算符的位置对算式进行扫描,首先判断运算符种类,然后再处理运算符前后的两个数字。对于乘除号我们计算前后两数结果后将结果存储入栈中。对于加减号,我们把前后两数连同符号(作正负数处理)一起存入栈中。最终算式中所有乘除都计算完后,只需把栈中带符号的数字相加即可判断结果是否为二十四。
另:
将字符类型转换成整型只需将对应字符减去‘0’即可
例如:
‘9’-‘0’=57-48(ascii码)=9,
‘5’-‘0’=‘5’-48=5
测试案例供复制:
10
9+3+4x3
5+4x5x5
7-9-9+8
5x6/5x4
3+5+7+9
1x1+9-9
1x9-5/9
8/5+6x9
6x7-3x6
6x4+4/5<