题意
给你长度为 n n n的括号字符串,问你能不能组成长度为 m m m的合法字符串?
思路
首先找到 m / 2 m/2 m/2个 ( ( (,再为它匹配相同数量的 ) ) )
代码
#include<bits/stdc++.h>
#include<queue>
#include<set>
#include<stack>
#include<cstring>
#define ll long long
using namespace std;
const int N=2e5+10;
const int M=2023;
const int inf=0x3f3f3f3f;
int n,m,maxx,minn,l,r;
string ans;
char a[N];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)
{
if(a[i]=='(' and 1+l<=m/2)
{
l++;
ans+='(';
}
if(a[i]==')' and r+1<=l)
{
r++;
ans+=')';
}
}
cout<<ans;
}