社区讨论

84分TLE求调

P10472括号画家参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mhj8zafo
此快照首次捕获于
2025/11/03 22:40
4 个月前
此快照最后确认于
2025/11/03 22:40
4 个月前
查看原帖
RT代码如下
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
stack<char>s;
string st; 
int len,cnt1,cnt2,cnt3,ans=-1;
bool flag;
signed main()
{
	cin>>st;
	len=st.size();
	for(int i=0;i<len;i++)
	{
		 for(int j=0;j<len;j++)
		 {
		 	while(!s.empty())
			{
				s.pop();
			}
			cnt1=0,cnt2=0,cnt3=0,flag=1;
			for(int k=i;k<=j;k++)
			{
				if(st[k]=='(')
				{
					s.push(st[k]);
					cnt1++;
				}
				if(st[k]=='[')
				{
					s.push(st[k]);
					cnt2++;
				}
				if(st[k]=='{')
				{
					s.push(st[k]);
					cnt3++;
				}
				if(st[k]==')')
				{
					if(cnt1 and s.top()=='(')
					{
						s.pop();
						cnt1--;
					}
					else
					{
						flag=0;
						break;	
					}
				}
				if(st[k]==']')
				{
					if(cnt2 and s.top()=='[')
					{
						s.pop();
						cnt2--;
					}
					else
					{
						flag=0;
						break;	
					}
				}
				if(st[k]=='}')
				{
					if(cnt3 and s.top()=='{')
					{
						s.pop();
						cnt3--;
					}
					else
					{
						flag=0;
						break;	
					}
				}
			}
			if(flag and s.empty()) ans=max(ans,j-i+1);
		 }
	}
	cout<<ans<<'\n';
	
	
	return 0;
}
救救孩子!

回复

0 条回复,欢迎继续交流。

正在加载回复...