题海拾贝:力扣 20、有效的括号
Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路!
我的博客:<但凡.-CSDN博客
我的专栏:《编程之路》、《题海拾贝》、《数据结构与算法之美》
欢迎点赞、关注!
1、题目
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)!