脱括号变号

来源:互联网 发布:jquery清空table数据 编辑:程序博客网 时间:2024/04/27 14:32

 

对一个只含大写英文字母,"+","-","(",")'的表达式,其中单个大些字母表示变量,进行如下处理:去掉表达式中的全部括号,并对“+”,“-”进行相应的变号,最后得到一个与所给表达式等价且长度最短的表达式。不判错

如 (-A)-((-B)-(-C))

得 -A+B-C

 

这一题上我发了较多的时间,应该都是因为编程上的失误吧。

 

因为一个括号为的符号影响的是接在其后的一整个括号内的符号。如果是符号,我要改变的是这个括号内的不在其他括号内的符号。

 

所以我初始化的时候,计算出了每个"("对应的")"所在的位置和")"对于"("所在的位置,还有每个符号所在的括号的左括号的位置。

 

这样我就可以通过遍历在做了。

 

找到一个符号以后,在其后的整个括号中找所记录的对应位置为该括号的符号进行变号。

 

得:

 

对于类似的问题,一个数据会改变一定范围内的数据,可以试着将范围记录下来。

 

 

 

原创粉丝点击