#ASC202635. 串口命令编辑器
串口命令编辑器
题目背景
学长在串口里发送了一条控制命令,却发现顺序写反了,还有一段需要删掉。重新输入太麻烦,于是他决定用几条编辑操作修好它。请你实现这个简易的命令编辑器。
题目描述
给定一个初始命令字符串,按照输入顺序依次执行 q 条编辑操作。字符串中的字符下标从 0 开始,每条操作使用的下标都以执行该操作前的字符串为准。
支持四种操作:
INSERT p s:在下标 p 对应的字符之前插入字符串 s。若 p 等于当前字符串长度,则在末尾插入。空字符串只允许在位置 0 插入。DELETE l r:删除下标 l 到 r 的所有字符,包含两个端点。REVERSE l r:将下标 l 到 r 的字符顺序反转,包含两个端点。REPLACE l r s:删除下标 l 到 r 的所有字符,并在原位置插入字符串 s。
所有命令字符串仅包含大写英文字母。请输出执行全部操作后的字符串。
输入格式
第一行输入一个非空字符串,表示初始命令。
第二行输入一个整数 q,表示操作条数。
接下来 q 行,每行输入一条操作,格式见题目描述。
保证所有操作的下标合法:插入操作满足 0 ≤ p ≤ 当前长度;其余三种操作满足 0 ≤ l ≤ r < 当前长度。
输出格式
输出最终字符串。如果最终字符串为空,则输出 EMPTY。
样例
LEDSTOP
4
INSERT 3 GO
DELETE 5 6
REVERSE 0 2
REPLACE 3 4 RUN
DELRUNOP
样例解释
四次操作后的字符串依次为 LEDGOSTOP、LEDGOOP、DELGOOP、DELRUNOP。
数据范围与限制
- 初始字符串长度在 1 到 100 之间;
- 1 ≤ q ≤ 100;
- 插入或替换用的字符串 s 的长度在 1 到 100 之间;
- 任意一次操作后,当前字符串的长度不超过 1000,可以为空;
- 时间限制:1 秒;内存限制:256 MiB。
相关
在下列比赛中: