爆栈是什么?求助
  • 板块灌水区
  • 楼主逆风笑_
  • 当前回复9
  • 已保存回复9
  • 发布时间2020/10/31 10:48
  • 上次更新2023/11/5 09:25:59
查看原帖
爆栈是什么?求助
382004
逆风笑_楼主2020/10/31 10:48
#include<bits/stdc++.h>
using namespace std;
int t,n,ans;
bool judge(char a[]){
	stack<char>s;
	for(int i=1;i<=n;i++){
		if(a[i]==')'){
			if(s.top()=='(') s.pop();
            s.push(a[i]);
		}
		else s.push(a[i]);
	}
    cout<<s.top();
	if(!s.empty()) return 0;
	else return 1;
}
int main(){
	cin>>t;
	while(t--){
		scanf("%d",&n);
		char a[20000010];
		for(int i=1;i<=n;i++) scanf("%s",a[i]);
		bool fl[2000010];
		if(judge(a)) fl[1]=1;
        //cout<<ans;
		for(int i=2;i<=n;i++){
            //cout<<judge(a);
			a[0]=a[n];
			for(int j=n-1;j>=0;j--)
				a[j+1]=a[j];
			if(fl[i-1]){
				fl[i]=0;
				ans++;
				continue;
			}
			if(judge(a)) fl[i]=1;
		}
		printf("%d",ans);
	}
	return 0;
}

编译器说我这段代码爆栈了,对这个没概念。求debug

2020/10/31 10:48
加载中...