友塔游戏笔试第一题--辅助栈
这道题笔试太着急没完全模拟出来有点难受,现在补一下。
题目:删除字符串中的字符使得最后的字符串中没有连续重复的字符。字符为空则输出“NULL”
如输入:“abba” ,输出“NULL”;
输入:“abbc” ,输出“ac”;
int main() { string s; cin >> s; int n = s.size(); stack<char> stk; for (int i = 0; i < n; ++i) { if (!stk.empty() && s[i] == stk.top()) { stk.pop(); char c = s[i];//没往右继续删除出错 while (i < n && s[i] == c)++i; --i;//没--i出错 } else stk.emplace(s[i]); } if (stk.empty()) { cout << "NULL" << endl; return 0; } else { int k = stk.size(); string ans; for (int i = 0; i < k; ++i) { ans.insert(ans.begin(), stk.top()); stk.pop(); } cout << ans << endl; } return 0; }