#P1690. (Your)((Term)((Project)))
(Your)((Term)((Project)))
题目描述
你在个人电脑上输入了学期项目报告。报告中有几个一行的算术表达式。这些表达式中原本没有多余的括号(省略一对多余的匹配括号不会改变表达式的值)。在你不在的时候,你的弟弟在你的报告中的表达式里插入了一些多余的匹配括号。假设这些表达式在语法上仍然正确,并且计算结果与原来的值(插入多余括号之前的值)相同。为了将你的报告恢复到原来的形式,你需要编写一个程序来去掉所有多余的括号。
为了简化问题,考虑以下简化假设:
- 输入文件包含若干个表达式,每个表达式独占一行。
- 表达式中的变量仅为单个大写字母。
- 表达式中的运算符仅为二元运算符“+”和二元运算符“-”。
请注意,唯一允许的变换是去掉多余的括号,不允许进行代数化简。
输入格式
输入由若干个测试用例组成。文件的第一行包含一个整数 M
,表示测试用例的数量(1 <= M
<= 10)。接下来的 M
行,每行恰好是一个正确的表达式。每行中可能会有任意数量的空白字符。每行的长度(包括空白字符)最多为 255 个字符。
输出格式
每个测试用例的输出是去掉多余括号后的相同表达式。请注意,输入表达式和其对应的输出中操作数的顺序应该相同。每个输出表达式必须独占一行。输出表达式中应省略空白字符。
输入数据示例 1
3
(A-B + C) - (A+(B - C)) - (C-(D- E) )
((A)-( (B)))
A-(B+C)
输出数据示例 1
A-B+C-(A+B-C)-(C-(D-E))
A-B
A-(B+C)
题目来源
德黑兰 1999 年竞赛题