就一个字
pair...
用栈模拟匹配过程T^T(开始的时候理解为:只要是连续的全部删除,这样就比成对删除麻烦了)
另外:用栈顶元素的时候首先确保栈不空.
#include <iostream> #include <string> #include <stack> #include <vector> using namespace std; int main() { string str; stack<char> s; while(!s.empty()) s.pop(); cin>>str; int len = str.length(); s.push(str[0]); for(int i=1;i<len;i++) { if(!s.empty() && s.top()==str[i]) s.pop(); else s.push(str[i]); } vector<char> v; while(!v.empty()) v.pop_back(); while(!s.empty()) { v.push_back(s.top()); s.pop(); } for(int i = v.size()-1;i>=0;i--) { cout<<v[i]; } }