4操作要撤销最近的1操作或者2操作,我们没进行一次1操作或者2操作就插入栈中,遇到4,就弹出栈顶
#include <iostream>
#include<stack>
using namespace std;
stack<string>st;
int t;
int main()
{
while(cin>>t){
while(!st.empty())st.pop();
st.push("");
while (t--) {
int num1;
string s;
cin >> num1;
if (num1 == 1) {
cin >> s;
st.push(st.top()+s);
}
else if (num1 == 2) {
int k;
cin >> k;
string temp = st.top();
temp.erase(temp.size() - k);
st.push(temp);
}
else if (num1 == 3) {
int k;
cin >> k;
//cout << num;
string temp = st.top();
cout << temp[k-1] << endl;
}
else {
st.pop();
}
}
}
}


京公网安备 11010502036488号