题意全靠蒙…
维护一个栈,提取message的每个字符,如果栈顶元素与字符不同就将字符压入栈中,否则将栈顶字符弹出.
#include <cstdio>
#include <vector>
#include <stack>
#include <cstring>
using namespace std;
const int maxn = 200000 + 10;
char mesg[maxn];
int main(int argc, char const *argv[]) {
stack<char> s;
vector<char> v;
gets(mesg);
int n = strlen(mesg);
for (int i = 0; i < n; i++) {
char ch = mesg[i];
if (ch == ' ' || ch == '.') {
continue;
}
int flag = 1;
while (!s.empty() && s.top() == ch) {
s.pop();
flag = 0;
}
if (flag == 1) {
s.push(mesg[i]);
}
}
while (!s.empty()) {
char ch = s.top();
s.pop();
v.push_back(ch);
}
for (int i = v.size() - 1; i >= 0; i--) {
printf("%c", v[i]);
}
putchar('\n');
return 0;
}