#831. 去除括号
去除括号
No submission language available for this problem.
去除括号
题目背景
方老师读大学时,总会利用放假的时间在一家快递公司做兼职,他需要把客户的地址信息录入到系统中。
有时候客户会把地址写成这样的形式:北京市海淀区学院路38号,而有时候他们会写成这样:(北京市)海淀区(学院路)38号。
这种写法用括号表示出了地址的层次结构,但是在录入系统时,括号并不是必须的,而且会占用额外的字符空间。因此,你需要编写一个程序来删除一些的括号,以减少录入时间和空间。
题目描述
现在我们把这个问题简化一下:
给定一个算术表达式,在表达式中,会有用括号括起来的一部分式子表示计算的优先级不同。请你删除一些互相匹配的括号对,输出所有的删除后的方案。按照字典序输出。
比如,给定一个算术表达式 (1+(2*3)+1),所有合法的方案为 (1+2*3+1) 1+(2*3)+1 1+2*3+1。而 (1+2*3)+1 1+(2*3+1) 并不合法,因为删除的括号对不互相匹配。
输入格式
输入一行一个算术表达式。
输出格式
输出所有的删除后的合法方案。每个式子一行,按照字典序输出。
样例 #1
样例输入 #1
(0/(0))
样例输出 #1
(0/0)
0/(0)
0/0
样例 #2
样例输入 #2
(2+(2*2)+2)
样例输出 #2
(2+2*2+2)
2+(2*2)+2
2+2*2+2
样例 #3
样例输入 #3
(1+(2*(3+4)))
样例输出 #3
(1+(2*3+4))
(1+2*(3+4))
(1+2*3+4)
1+(2*(3+4))
1+(2*3+4)
1+2*(3+4)
1+2*3+4
提示
对于 的数据,保证给出的算术表达式的长度不超过 ,输入仅包含 + - * / ( )。