牛客 点击消除 C++
思路🧐:
可以用括号匹配的思路,但我们这里用string模拟一个栈,方便我们进行输出,创建一个str为输出字符串,s接收字符串,然后开始对比,如果str的尾部(可以说是栈顶)与遍历到的接收字符串相等,那么就删除(出栈),否则插入(入栈),当s遍历完成,str就是最终消除的结果。
代码🔎:
#include <iostream> #include <string> using namespace std; int main() { string str,s; cin >> s; for(auto i : s) { if(str.size() && str.back() == i) //str不为空且与s相等 { str.pop_back(); } else { str.push_back(i); } } if(str.empty()) //判断为空的输出情况 cout << "0" << endl; cout << str; }