栈wa40pts求助
查看原帖
栈wa40pts求助
1059841
Bzh_2024楼主2023/9/2 15:28
#include<bits/stdc++.h>
#define I using
#define AK namespace
#define IOI std;
#define f first
#define s second
#define pii pair<int,int>
I AK IOI
typedef long long ll;
char s[1000005];
int l,len,start,e,temp;
bool vis[1000005];
int main(){
	scanf("%s",s+1);
	for(int i=1;s[i]=='('||s[i]==')'||s[i]=='['||s[i]==']';i++) l++;
	stack<pair<char,int> > st;
	for(int i=1;i<=l;i++){
		if(!st.empty()) if(st.top().f=='('&&s[i]==')'||st.top().f=='['&&s[i]==']'){
			vis[i]=vis[st.top().s]=1;
			st.pop();
		}
		if(s[i]=='('||s[i]=='[') st.push({s[i],i});
	}
	int left=1;
	for(int i=1;i<=l;++i){
		if(!vis[i]) temp=0,left=i+1;
		else{
			++temp;
			if(temp>len) start=left,e=i,len=temp;
		}
	}
	for(int i=start;i<=e;i++) printf("%c",s[i]);
}
2023/9/2 15:28
加载中...