1 条题解

  • 1
    @ 2023-8-23 21:47:13
    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<string>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    
    const int L=1000005;
    char s[L];
    int l,f[L],Ans,id;
    
    int main()
    {
    	scanf("%s",s+1);
    	l=strlen(s+1);
    	for(int i=2;i<=l;++i)
    		if(s[i]=='('||s[i]=='[') continue;
    		else
    			if((s[i]==')'&&s[i-f[i-1]-1]=='(')
    			||(s[i]==']'&&s[i-f[i-1]-1]=='['))
    			{
    				f[i]=f[i-1]+2+f[i-f[i-1]-2];
    				if(f[i]>Ans) Ans=f[i],id=i;
    			}
    	for(int i=id-Ans+1;i<=id;++i) printf("%c",s[i]);
    	putchar('\n');
    	return 0;
    }
    
    
    • 1

    信息

    ID
    908
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    71
    已通过
    28
    上传者