自学内容网 自学内容网

题海拾贝:力扣 20、有效的括号

        Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路!

820e28c6bd244ce0bfbe0762f0222c73.gif

我的博客:<但凡.-CSDN博客

我的专栏:《编程之路》《题海拾贝》《数据结构与算法之美》

欢迎点赞、关注!

 1、题目

1a2dd7772aa34195a6524bb6ed71e551.png

 2、题解

       这个题目我们用c加加的stack来处理再合适不过。

       我们把每个字符都去循环里判断一遍,把所有的左括号存进stack里,如果是右括号的话就判断栈顶上的那个是不是匹配的左括号,如果不是直接返回假,如果是那就删除顶上的。

       最后出循环后我们在判断一下还有没有剩余元素,没剩就是都有匹配的,有剩就是有没匹配上的括号。

class Solution {
public:
    bool isValid(string s) {
        stack<int> st;
        for(auto ch:s)
        {
            if(ch=='['||ch=='('||ch=='{')
            {
                st.push(ch);
            }
            else
            {
                if(st.empty()) 
                {return false;}
                char left=st.top();
                if(ch==')'&&left!='(') { return false;}
                if(ch==']'&&left!='[') {return false;}
                if(ch=='}'&&left!='{') {return false;}
                st.pop();
            }
        }
        return st.empty();
    }
};

       好了,今天的内容就分享到这,我们下期再见!

 


原文地址:https://blog.csdn.net/2401_87995839/article/details/144412112

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!