小括号的匹配算法,通过遍历检验括号的匹配。
符号 | '(' | ')' |
权重 | 1 | -1 |
对表达式exp:
遍历时 sum >= 0 ; 遍历后 sum == 0;
程序如下:
int sum = 0;
for ( int i = 0; i<exp.length(); i++){
if ( exp[i] == '(' ) sum++;
if ( exp[i] == ')' ) sum--;
if ( sum < 0 ) badExp();
if ( (exp[i] == ')') && (exp[i-1] == '(') ) badExp();
}
if (sum != 0) badExp();