假设表达式中允许包含三种括号:圆括号和方括号和大括号,其嵌套的顺序随意,即( [ ] ( ) )或者[ ( [ ] ) ]为正确格式,[(])或(()]均为不正确的格式,检验括号是否匹配的方法可用"期待的破却程度"来描述。
下面来对括号是否匹配来进行检验
对于检验括号是否匹配可以对其进行进栈和出栈来处理,遇到' ( '、' [ '、‘ { ’时对其进栈,遇到')'、‘]’、‘}’对其出栈,在算法的开始结束的时候栈都应该是空的,每次遇到右括号出栈的时候都应该要有一个相同括号的左括号与其匹配,不然则视其出栈失败即括号不匹配
【(【】【】)】
例如上面一开始是1,2,3是左括号,那么从左往右开始进栈,栈底元素是1,2,3,当遇到第4个右括号的时候,堆栈进行出列,这时候出列的符号应该与4符号对应的左括号3,第3个括号出列,此时栈中只剩下1,2,遇到第5个括号时因为是左括号所以进栈,栈中元素是1,2,5,剩下6,7,8方法也和上面的一样,遵循出列的括号要是与遇到右括号对其,只要在算法开始和结束的时候,栈都应该是空的那么括号就是正确格式ÿ