去除多余括号的算法

[复制链接]
查看11 | 回复1 | 2009-3-4 19:21:40 | 显示全部楼层 |阅读模式
键盘输入一个含有括号的四则运算表达式,可能含有多余的括号,编程整理该表达式,去掉所有多余的括号,原表达式中所有变量和运算符相对位置保持不变,并保持与原表达式等价。
例如:

a+(b+c)----->a+b+c

(a*b)+c/d--->a*b+c/d

a+b/(c-d)--->a+b/(c-d)

回复

使用道具 举报

千问 | 2009-3-4 19:21:40 | 显示全部楼层
c++的, 不检查括号匹配,只处理小括号 不能含有 空格 : ;void RemoveRedundancyBrackets(char* szSrc) { if (NULL == szSrc) return; int len = strlen(szSrc) - 1; int i; int j; for (i = 1; i0; j--) { if ('(' == szSrc[j]) { if (')' == szSrc[i + 1] && '(' == szSrc[j -...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行