题解 | #点击消除#
点击消除
https://www.nowcoder.com/practice/8d3643ec29654cf8908b5cf3a0479fd5
#include <iostream>
#include <bits/stdc++.h>
#include <string>
using namespace std;
int main() {
stack<char> ms;
string input_s;
cin>>input_s;
for(int i=0;i<input_s.size();i++){
if(ms.empty()||ms.top()!=input_s[i]){
ms.push(input_s[i]);
}else{
ms.pop();
}
}
if(ms.empty()){
cout<<0<<endl;
}else{
int n=ms.size();
char s_out[n];
int j=0;
for(int i=n-1;i>=0;i--){
s_out[i]=ms.top();
ms.pop();
}
for(int i=0;i<n;i++) cout<<s_out[i];
}
return 0;
}
// 64 位输出请用 printf("%lld")
比较重要的是栈的倒序输出,需要新定义一个char的数组,从未到头依次对数组赋值,然后一个一个输出。
查看13道真题和解析