做法就是栈,但是不知道为什么WA40分,试了好几个自己出的数据也可以过,求大佬hack
#include<iostream>
#include<cstring>
using namespace std;
string s,sans;
char a[1000005];
int cnt,ans,t;
int main(){
cin>>s;
int l=s.size();
for(int i=0;i<l;i++){
a[++t]=s[i];
cnt++;
if(a[t]==')'&&a[t-1]=='('||a[t]==']'&&a[t-1]=='['){
t-=2;
}
else if(a[t]==')'&&a[t-1]!='('||a[t]==']'&&a[t-1]!='['){
cnt=0;
t=0;
}
if(t==0&&cnt>ans){
ans=cnt;sans=s.substr(i-ans+1,ans);
}
}
cout<<sans;
return 0;
}