题解 | 点击消除,栈解法,图解
点击消除
https://www.nowcoder.com/practice/8d3643ec29654cf8908b5cf3a0479fd5
#include <iostream> #include <stack> using namespace std; int main() { string s; cin >> s; // 利用栈 stack<char> st; st.push(s[0]); for(int i = 1; i < s.size(); ++i) { if(!st.empty()) { if(st.top() == s[i]) st.pop(); else st.push(s[i]); } else { st.push(s[i]); } } if(st.empty()) cout << "0"; else{ string ret; while(!st.empty()) { ret.insert(ret.begin(), st.top()); st.pop(); } for(auto ch : ret) cout << ch; } } // 64 位输出请用 printf("%lld")