#iai15b4. 文本编辑器(二)(Text Editor II)
文本编辑器(二)(Text Editor II)
文本编辑器(二)(Text Editor II)
题目描述
请实现一个支持在任意位置插入和删除字符的文本编辑器。开始时,编辑器的文本是空的,给定 n 条修改操作,请模拟编辑器在这些操作下的行为,最后输出编辑器所记录的文本内容:
- 插入 操作:该操作还需要提供一个数字 k 与一个字符 ch 作为参数,编辑器将在文本的前 k 个字符之后插入 ch。特别地,若 k=0,则编辑器将会在文本的首位插入 ch;
- 删除 操作:该操作还需要提供一个数字 k,编辑器删除文本的第 k 个字符;
输入格式
第一行:单个整数 n; 第二行到第 n+1 行:每行表示一个操作:
- 插入 操作以字母
i开头,后接一个自然数 k 与一个字母 ch,保证 ch 是一个大写的英文字母,k 不超过当前文本的长度; - 删除 操作以字母
d开头,后接一个正整数 k,保证 k 不超过当前文本的长度。
输出格式
单个字符串:表示编辑器最后所记录的文本内容。
数据范围
- 对于 30% 的数据,1 ≤ n ≤ 500;
- 对于 60% 的数据,1 ≤ n ≤ 50000;
- 对于 100% 的数据,1 ≤ n ≤ 500000。
样例输入 #1
5 i 0 A i 1 B i 2 C d 2 d 1
样例输出 #1
C
说明:前三步构造出了ABC,第四步删除了B,第五步删除了A
知识点与难度
本题涉及的知识点从属于 GESP 5级,难度等级:⭐⭐。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1~2 | 样例 |
| 1 | 20 | 3~8 | 小规模 n≤20 / 特殊: 全插入 / 特殊: 全删除 |
| 2 | 15 | 9~11 | Hack: n=1 / Hack: 频繁首尾操作 / Hack: 交替插入删除 |
| 3 | 30 | 12~20 | 中规模 n≈500~50000 / 大规模 n≈500000 压力 |
| 4 | 25 | 21~25 | 随机 n=1~500000 回归 |