参考资料:https://www.cnblogs.com/grandyang/p/4424587.html
相关知识:
1.栈的定义与实现
2.栈的地址
解法一
使用栈进行解决
class Solution {
public:
bool isValid(string s) {
stack <char> stk;//定义栈
for (int i = 0; i < s.size(); i++)
{
if(s[i]=='{' || s[i]=='[' || s[i]=='('){
stk.push(s[i]);//压入栈
}
else
{
if(stk.empty()) return false;
if(s[i]==')'&&stk.top()!='(') return false;//与栈顶比较
if(s[i]=='}'&&stk.top()!='{') return false;
if(s[i]==']'&&stk.top()!='[') return false;
stk.pop();//从栈顶弹出一个成员
}
}
return stk.empty();//栈如果是空的,返回true
}
};
运行速度:

踩坑
1.栈顶是最后一个入栈的位置
2.string内元素调用为char
3.if后面的语句如果只有一句可以不用括号

博客围绕C++解决LeetCode问题展开。介绍了使用栈解决问题的方法,涉及栈的定义、实现和地址等相关知识,还提及运行速度。同时分享了踩坑点,如栈顶位置、string内元素调用类型,以及if语句括号使用等。

被折叠的 条评论
为什么被折叠?



