您的位置:首页 > 理论基础 > 数据结构算法

【C++】20.有效的括号【leetcode】——栈数据结构

2020-02-29 23:40 417 查看

题目描述:

思路:

1.单括号():设置变量left,记录当前还未配对的前括号;每遇到,left++;每遇到 ,left--

2.但是当出现多种括号时,方法一不适用,为了应对 { [ ( ) ] } 和 [ ( ] ) 这种情况,引入栈数据结构

C++代码实现:

[code]class Solution {
public:
bool isValid(string s) {
vector<int> res;
for(char c:s){
if(c=='('||c=='['||c=='{'){
res.push_back(c);
}
if(c==')'){
if(res.size()>0&&res.back()=='('){
res.pop_back();
}else{
return false;
}
}
if(c==']'){
if(res.size()>0&&res.back()=='['){
res.pop_back();
}else{
return false;
}
}
if(c=='}'){
if(res.size()>0&&res.back()=='{'){
res.pop_back();
}else{
return false;
}
}
}
if(res.size()==0){
return true;
}else{
return false;
}
}
};

PS:

C++有自带的stack,下次改一下。

  • 点赞 1
  • 收藏
  • 分享
  • 文章举报
丁大勤 发布了6 篇原创文章 · 获赞 2 · 访问量 86 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: