去除表达式里面多余的()

来源:互联网 发布:设置软件管理员权限 编辑:程序博客网 时间:2024/05/01 21:21

这是很久之前CSDN上一个朋友问我的一道题:

 

去除表达式里面多余的()
检查字符串表达式中的括号是否匹配;
左括号数目同有括号数目不相等即为不匹配;
去除多余的左括号或者右括号,优先保留先出现的括号;
匹配后去除无效的括号:如:((表达式)) 应为(表达式);
只考虑小括号,不考虑先出现右括号的情况;
要求实现函数: (字符串最长长度为60;表达式正确性不需要考虑)
void Bracket(char* src, char* dst);

如果匹配则通过dst输出原串;

如果不匹配则根据要求去处多于括号后通过dst输出匹配后的串

示例
输入:12+(345*25-34) 输出:12+(345*25-34)

输入:12+(345*(25-34) 输出: 12+(345*25-34)

输入:(12+345)*25)-34 输出: (12+345)*25-34

输入:(543+(256-43)*203))+24 输出:(543+(256-43)*203)+24

输入:((1+2)*((34-2))+((2*8-1) 输出:((1+2)*(34-2)+2*8-1)

 

 

原创粉丝点击