大佬求助:不知为何会被卡
查看原帖
大佬求助:不知为何会被卡
569061
LX_zxy楼主2024/7/6 09:08

小的太久没有搞OI了,以至于代码实现有点生疏了QwQ


这道题不知道是不是哪里写错了,思路应该没有太大的问题


OrzOrzOrz小的感谢大佬


#include<bits/stdc++.h>
using namespace std;
int n,ans=0;
char m;
stack<char> q;
stack<char> p;
int find(){
	while(!q.empty()){
		char q_1=q.top();
		q.pop();
		p.push(q_1);
		if(q.top()==p.top()){//一直寻找到相同的元素
			while(q.top()==p.top()){//一直删,删到没有相同的元素为止
				q.pop(),p.pop();    
			}
			while(!p.empty()){//删完之后就把p中的元素返回到q中的元素,然后重新find
				char p_p=p.top();
				p.pop();
				q.push(p_p);
			}
			return 1;
		}
	}
	return 0;//返回0值,说明没有可以消除的了
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>m;
		q.push(m);
	}
	while(find())
		ans++;
	cout<<ans;
	return 0;
}
2024/7/6 09:08
加载中...