不应该啊,怎么全WA啊
查看原帖
不应该啊,怎么全WA啊
38886
越学越掂楼主2020/9/6 22:43
#include<bits/stdc++.h>
#define il inline
#define ll long long
#define rep(i,a,b,k) for(register ll i=a;i<=b;i+=k)
#define drep(i,a,b,k) for(register ll i=a;i>=b;i-=k)
using namespace std;
const int mn=1e6+5;
stack<char> st;
string s;
int len=0,ans,now,ansi;
bool sus[mn];
int main()
{
	cin>>s;
	len=s.length();
	rep(i,0,len-1,1)
	{
		if(s[i]=='('||s[i]=='[')
		{
			st.push(s[i]);
			now=1;
		}	
		else if((st.size())&&((s[i]==')'&&st.top()=='(')||(s[i]==']'&&st.top()=='[')))
		{
			sus[i]=1;
			sus[i-now]=1;
			st.pop();
			now+=2;
            if(st.empty())
                now=1;
		}
	}
    now=0;
	rep(i,0,len-1,1)
	{
		if(!sus[i])
			now=0;
		else
		{
			now++;
			if(now>ans)
			{
				ans=now;
				ansi=i;
			}
		}
	}
	rep(i,ansi-ans+1,ansi,1)
		printf("%c",s[i]);
	return 0;
}

样例全过了,只能求Hack了

2020/9/6 22:43
加载中...