【leetcode】-20-有效的括号

 

王道原题

【思路】

  • 遇到左括号
    • 直接入栈
  • 遇到右括号
    • 如果栈空,返回false
    • 如果与栈顶元素不匹配,返回false
    • 如果与栈顶元素匹配,弹出栈顶元素
  • 遍历结束栈不为空,返回false。
bool isValid(string s) {
        stack<char> kuohao;
        for(int i=0;i<s.length();i++){
            if(s[i]=='('||s[i]=='['||s[i]=='{')
                kuohao.push(s[i]);//左括号入栈
            else {//右括号
                if(kuohao.empty()) return false;

                if((s[i]==')'&&kuohao.top()=='(')||
                (s[i]==']'&&kuohao.top()=='[')||
                (s[i]=='}'&&kuohao.top()=='{'))
                {
                     kuohao.pop();//括号匹配则出栈
                } else 
                    return false;
            }
        }
        if(!kuohao.empty())return false;
        else return true;

    }

猜你喜欢

转载自blog.csdn.net/qq_39328436/article/details/113718976