专栏文章
题解:P14172 【MX-X23-T2】括号串
P14172题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minoj0fu
- 此快照首次捕获于
- 2025/12/02 05:46 3 个月前
- 此快照最后确认于
- 2025/12/02 05:46 3 个月前
思路:
用栈存储,最后判断一下剩下的括号即可。
AC code:
CPP#include<bits/stdc++.h>
using namespace std;
long long t,n,k;
string s;
struct node
{
char c;
int val;
}a[100010];
bool cmp(node aa,node bb)
{
return aa.val<bb.val;
}
int main()
{
cin>>t;
while(t--)
{
// memset(a,{'1',0},sizeof(a));
k=0;
cin>>n;
cin>>s;
stack<int> t,p;
string ss="";
for(int i=0;i<n;i++)
{
if(s[i]=='(')
{
t.push(1);
p.push(i);
}
else
{
if(!t.empty())
{
t.pop();
p.pop();
}
else
{
a[++k]={')',i};
}
}
}
while(!t.empty())
{
int e=p.top();
p.pop();
t.pop();
a[++k]={'(',e};
}
sort(a+1,a+1+k,cmp);
if(k==2||k==0)
{
if(k==0)
{
cout<<"Yes"<<endl;
}
else if(abs(a[1].val-a[2].val)==1&&a[1].c==')'&&a[2].c=='(')
{
cout<<"Yes"<<endl;
}
else
{
cout<<"No"<<endl;
}
}
else
{
cout<<"No"<<endl;
}
}
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...