题解
2026-06-07 09:50:09
发布于:湖南
2阅读
0回复
0点赞
题意
输入一个字符串,里面包含字母、数字和退格符 。规则:
遇到 ,删除它前面的一个字符
如果前面没有字符, 无效,直接忽略加粗文本
输出处理完的最终字符串
思路
核心方法:栈 / 队列 模拟退格
遍历输入的每一个字符
不是 :把字符存起来(加入队尾 / 栈顶)
是 :如果有存的字符,就删掉最后一个
遍历结束后,把存起来的字符按顺序输出
完整代码
#include <bits/stdc++.h>
using namespace std;
deque<char> q;
int main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
string s;
cin >> s;
int l = s.size();
for (int i = 0; i < l; i++) {
if (s[i] != '@') q.push_back(s[i]);
else if (q.size() > 0) q.pop_back();
}
while (q.size() > 0) {
cout << q.front();
q.pop_front();
}
return 0;
}

这里空空如也








有帮助,赞一个