B3998 [洛谷 202406GESP 模拟 四级] 小苏的键盘——题解
lsd110504lsd · · 题解
题目大意:
给你一些字符串(或字符),如果是<bs>就删除上一个输入的字符,其他正常输入,求输入完成的内容
思路:
题意模拟在脑海中容易实现,但是在代码上就有些困难。拦住我们的绊脚石其实是如何存储他。我们可能会想到两种,char或string。但char不好确定输入个数,所以选择string(个人理解:遇到空格或换行就停止)。
那删除,存储怎么办呢 可以选择vector,不用担心大小
废话不多说,直接上代码
#include<bits/stdc++.h>
using namespace std;
vector<char> v;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
string t;
cin>>t;
if(t[0]!='<')//退格
{
v.push_back(t[0]);
}
else
if(!v.empty())
v.resize(v.size()-1);//vector缩小一位————退格
}
for(int i=0;i<v.size();i++)
{
cout<<v[i];
}
return 0;
}