括号匹配经典问题
2026-03-03 21:01:20
发布于:浙江
6阅读
0回复
0点赞
本题可以也使用stack
遍历字符串,分情况讨论:
当为 '(' 时前面有')'则直接删除,再加入
当为' ) '时当作一个括号匹配
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,ans=0;
string s;
deque<int>q;
cin>>n>>s;
for(char i:s){
if(i=='('){
if(!q.empty()&&q.front()==')'){
ans++;
q.pop_front();
}
q.push_back('(');
}
else{
if(q.empty())ans++;
else q.pop_front();
}
}
ans+=q.size();
cout<<ans;
return 0;
}
这里空空如也





有帮助,赞一个