小慕正在开发一个项目操作历史管理器,使用来存储所有执行过的操作。这个管理器需要支持执行新操作、和功能。 功能说明如下: 1. 执行操作(execute {操作描述}):小慕执行一个新操作,并且会清除当前操作之后的所有历史记录 2. 撤销(undo):小慕可以回退到上一个操作状态(上一个操作状态可以是尚未执行任何操作的状态,如果当前状态已经是从未执行过任何操作的状态,则 undo 操作失败) 3. 重做(redo):小慕可以前进到下一个操作状态(下一个操作状态是之前被撤销过的操作,如果没有进行过撤销操作,即链表的下一个操作状态不存在,则 redo 操作失败) 输入保证命令只会出现 execute {操作描述}、undo、redo 这三种类型。
提示:带虚线的词点一下有通俗解释。
输入描述
每一行输出一个命令
输出描述
1. 执行完所有命令后,返回当前操作的描述 2. 若执行 undo 时,当前状态是从未执行过任何操作的状态,立即返回 "undo failed",不继续执行后续命令。(注意:undo可以撤销到从未执行过任何操作的状态) 3. 若执行 redo 时无下一个操作,立即返回 "redo failed",不继续执行后续命令 4. 若当前状态是从未执行过任何操作,当前操作描述为空字符串 ""
示例
示例 1
输入
6 execute,insert hello execute,newline execute,insert woo undo execute,insert world undo
输出
newline
说明:1. 执行insert hello ->当前insert hello 2. 执行newline -> 当前newline 3. 执行insert woo -> 当前 insert woo 4. 撤销 -> 当前newline 5. 执行insert world -> 当前insert world 6. 撤销 -> 当前newline
示例 2
输入
2 execute,insert hello undo
输出
说明:执行insert hello -> 当前insert hello 撤销,当前状态为"",空字符串
示例 3
输入
3 execute,insert hello undo redo
输出
insert hello
说明:1. 执行insert hello,当前为insert hello 2. 撤销,当前状态为"" 3. 重做,当前为insert hello
时间限制 1000 ms · 内存限制 128 MB