不用模板栈的话,就是建立一个数组,输入若是左括号,则入栈,stack[++top]=a[i],top为栈顶元素的指针,若是右括号,则出栈,stack[top--]。
此处关键是自增符号的顺序,为什么入栈要先加,出栈后减,因为栈顶指针永远都是最后一个元素前一个位置,入栈的时候要先移动指针,到上一个,才可以进栈。
还有要判断什么时候栈空,遇到右括号,如果此时栈空,即top==0,则左边没有元素了,这样就是不匹配的(可以联想如果输入的第一个就是右括号的情况比较好想到)。还有就是最后判断,如果输入元素都判断完,若最后栈是空的,则所有元素都匹配成功,是对的。若最后栈不是空的,则还有剩余元素没有匹配,此时是不匹配的。
-
输入