您好,欢迎来到纷纭教育。
搜索
您的当前位置:首页字符串中左右括号匹配判断

字符串中左右括号匹配判断

来源:纷纭教育

一、要求:

判断一个字符串中的小括号是否匹配。例如,字符串“((())())”中的小括号匹配,而“)()”中的小括号不匹配。如果匹配则提示匹配,如果不匹配则提示第一个不匹配的括号的位置。

 

二、 效果:

 

三、思路:

得到字符串,从头开始,一个一个字符判断。

(1) 如果是左括号则压入栈中。

(2) 如果是右括号,则将一个左括号从栈中弹出,匹配一对。若此时栈中无元素,那么这个右括号没有匹配的左括号。

最后,如果栈不为空,则有左括号没有匹配。

 

四、核心代码:

for(i = 0; i < brackets.length(); i++) {
        
if(brackets[i] == '(') {
        
//1.left bracket
            bracketStack.push('(');
            
if(bracketStack.size() == 1) {
                bottom 
= i;
            }
        }
else if (brackets[i] == ')') {
        
//2.right bracket
            if(!bracketStack.empty()) {
                tmp 
= bracketStack.top();
                bracketStack.pop();
            } 
else {
                res 
= nMatch;
                
//move to wrong position
                i++;
                
break;
            }
        }
        
//ingore non bracket
    }

 

 

五、所有代码

:

 

 

 

转载于:https://www.cnblogs.com/icescut/archive/2010/10/14/BracketMatch.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务