喵咕i 发表于 2020-3-9 17:43:20

1145: 去括号

题目如下 , 有没有大佬给个思路 ,不用给写出来 给个大致思路就行,怎么做


当老师不容易,尤其是当小学的老师更难:现在的小朋友做作业喜欢滥用括号。
虽然不影响计算结果,但不够美观,容易出错,而且可读性差。但又不能一棒子打死,也许他们就是将来的“陈景润”呢!
为了减轻老师的工作,不至于他们工作到深夜,我们来写个程序把小朋友的作业做一下简单地处理,去掉那些多余的括号。
为了简化问题,所有式子里只存在小括号,运算符号包括+(加)、-(减)、*(乘)、/(除)、^(幂)。
注意:去掉多余的小括号不是指运算结果一样就可以。
比如:(1+2)^1 = 3。虽然把括号去掉1+2^1也等于3,但我们说这个括号不能去。
但如:1+(2+3) = 1+2+3只要是允许的,因为加法是满足交换律和结合律的。
输入

输入包括多组测试数据。
每组测试数据为一行算术表达式,只包括数字和运算符号,长度小于16。
输入以#行结束,该行不做处理。
输出

对应每组数据输入都有一行输出。
输出去掉多余的括号后的表达式。

样例输入 Copy

((((1))))+((((1))))
1
1+1+1+1
((1+2)+3)*4
(1+(2+3))*4
4/(1/(2*3))
4/((1/2)/3)
((4^1)*2)*3
((4^1)*(2*3))
#

样例输出 Copy
1+1
1
1+1+1+1
(1+2+3)*4
(1+2+3)*4
4/(1/(2*3))
4/(1/2/3)
4^1*2*3
4^1*2*3

jackz007 发表于 2020-3-9 17:53:39

      你这哪里是在去括号,明明是在写算法解析器,其智能化要求已经接近于编译器了。

喵咕i 发表于 2020-3-9 18:07:12

jackz007 发表于 2020-3-9 17:53
你这哪里是在去括号,明明是在写算法解析器,其智能化要求已经接近于编译器了。

{:5_96:}就是oj 平台的题 {:10_266:}

major_lyu 发表于 2020-3-9 21:22:00

去网上搜,有很多博客讲这个问题的,自己研究一下!!
页: [1]
查看完整版本: 1145: 去括号