WA 90pts 求调
查看原帖
WA 90pts 求调
757139
zsh_haha楼主2023/8/16 21:03

#2 一直WA

#include<bits/stdc++.h>
using namespace std;
char a[1000005];
bool bb[1000005];
char s1[1000005];
int s2[1000001];
int main(){
	cin>>a+1;
	int n=strlen(a+1);
	int maxn=0;
	for(int i=1;i<=n;i++){
		if(a[i]=='('||a[i]=='['){
			s2[++s2[0]]=i;
			s1[++s1[0]]=a[i];
		}else if(a[i]==')'){
			if(s1[s1[0]]=='('){
				bb[i]=true;
				bb[s2[s2[0]]]=true;
				s1[0]--;
				s2[0]--;
			}else{
				s2[0]=s1[0]=0;
			}
		}else if(a[i]==']'){
			if(s1[s1[0]]=='['){
				bb[i]=true;
				bb[s2[s2[0]]]=true;
				s1[0]--;
				s2[0]--;
			}else{
				s2[0]=s1[0]=0;
			}
		}
	}
	int l=0,r=-1,now=0;
	for(int i=1;i<=n;i++){
//		cout<<bb[i];
		if(bb[i]){
			now++;
			if(now>r-l+1){
				r=i;
				l=i-now+1;
			}
		}else{
			now=0;
		}
	}
//	cout<<endl;
	for(int i=l;i<=r;i++){
		cout<<a[i];
	}
	return 0;
}
2023/8/16 21:03
加载中...