题目:
输入字符串,求输出的值。输入的均为整形,要求包含运算符
例如输入: "24*1 +(4+6)*2+ (4-3*2) *( 4+6-9+(11-3*4)*2 +2)* 10+ 20 -3* 2 *4 +2"
输出结果:20
要求:对于多余空格字符完好的鲁棒性,函数原型:void process(const char* input, int &output)
思想:
1. 首先,介绍基本数值运算(不包含括号运算符)算法。例如计算“13+7*2*1-15-2*8+2”。先定义三个变量,整形left,right分别表示左,右操作数,定义bool变量flag。遍历字符串,初始为true。设定字符串指针为*str。 基本算法为左操作数记录当前结果,右操作数更新新的操作数。这里涉及到对下一个操作符号的试探,则四者者的变动为:
分析:
(1)该算法不回溯,只一次性遍历一遍字符串</