代码如下
#include<bits/stdc++.h>
using namespace std;
stack <pair<char,int> > st;
int i,v[1000005], sum, mmax, f;
string s;
int main()
{
cin>>s;
for(i=0;i<s.size();i++)
{
if(!st.empty())
if((st.top().first=='['&&s[i]==']')||((st.top().first=='('&&s[i]==')')))
{
v[st.top().second]=1;
v[i]=1;
st.pop();
continue;
}
st.push(make_pair(s[i],i));
}
for(i=0;i<s.size();i++)
{
if(v[i]==0)
{
if(sum>mmax)
{
mmax=sum;
f=i;
}
}
else {
sum++;
}
}
for(i=f-mmax;i<f;i++)
{
cout<<s[i];
}
return 0;
}