撤销:ctrl+z,可以撤销最近1次之前的恢复和 input 操作。恢复:ctrl+y,可以恢复最近1次之前的撤销操作,但是 input 操作之前的撤销操作不能被恢复。写入内容:input str(str中不含空格)。
输入格式:第一行为一个正整数 n;接下来 n 行,为上述的操作之一。不合法操作跳过即可。
输出格式:输出 word 中的内容,字符串间用空格隔开,如果 word 为空,输出”No output”
#include <iostream>
#include <string>
using namespace std;
int main(){
int n;cin>>n;string str,a[10005];int k,j=0;
for(int i=0;i<n;i++){
cin>>str;//a[]存储input输入的内容
if(str=="input"){
cin>>a[++j];k=j;//k表示最后一个可恢复的操作位置
}
if(str=="ctrl+z"){
if(j>0)j--;//向后移动
}
if(str=="ctrl+y"){
if(j<k)j++;//向前移动
}
}
if(j==0)cout<<"No output"<<endl;
for(int i=1;i<=j;i++){
if(i<j)cout<<a[i]<<" ";
if(i==j)cout<<a[i]<<endl;
}return 0;
}
输入示例:5 \n input a \n input b \n ctrl+z \n input d \n ctrl+y
输出示例: a d
2786

被折叠的 条评论
为什么被折叠?



