友塔游戏笔试第一题--辅助栈
这道题笔试太着急没完全模拟出来有点难受,现在补一下。
题目:删除字符串中的字符使得最后的字符串中没有连续重复的字符。字符为空则输出“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;
}
滴滴公司福利 1784人发布
查看9道真题和解析