小的太久没有搞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;
}