2.10 小C的记事本
题目链接
题目思路:对栈的运用
撤销可以通过栈的pop()来实现,str.erase()是新学到的知识,原来字符串还有删除指定部分字符串的函数
str.erase(x,y); 删除字符串str从第x开始的y个字符
代码实现
#include<bits/stdc++.h> using namespace std; int t; string tmp,in; int num; int main() { int q; while(cin>>q){ stack<string> str; while(q--) { cin>>t; if(t==1) { cin>>in; if(!str.empty()) str.push(str.top()+in); else str.push(in); } else if(t==2) { cin>>num; in=str.top(); in.erase(in.size()-num,num); str.push(in); } else if(t==3) { cin>>num; in=str.top(); cout<<in[num-1]<<endl;; } else if(t==4) str.pop(); } } return 0; }