题解 | #点击消除#
点击消除
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的数组,从未到头依次对数组赋值,然后一个一个输出。