思路就是以栈为基本思想,统计括号能不能匹配的上
但是1TLE 6WA了
求救!
#include<bits/stdc++.h>
using namespace std;
int tot_s,tot_m,dq,ans,leng,max_id;string s;
int find(int n){
tot_s=tot_m=0;
for(int i=n;i<leng;i++){
switch (s[i]){
case '(':
++tot_s;
break;
case '[':
++tot_m;
break;
case ')':
if(tot_s)--tot_s;
else if(tot_m)return 0;
else return i-n;
break;
case ']':
if(tot_m)--tot_m;
else if(tot_s)return 0;
else return i-n;
break;
}
}
if(tot_s||tot_m)return 0;
else return leng-n;
}
int main(){
cin>>s;
leng=s.size();
for(int i=0;i<leng;i++){
int ls=find(i);
if(ls>ans){
ans=ls;
max_id=i;
}
}
for(int i=max_id;i<max_id+ans;i++){
cout<<s[i];
}
return 0;
}