A7051 | 文字处理器
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
给定一个初始字符串 $s$(仅含小写英文字母),依次处理 $Q$ 次操作。共有五类操作:
1.
2.
3.
4.
5.
> 说明:
>
> - 所有下标均为 $0$ 开始。
> - 操作 $1,2,3,4$ 输出当前 $s$;操作 $5$ 输出一个整数。
> - “不重叠出现”按从左到右扫描,匹配后跳过被匹配片段继续扫描。
1.
1 t —— 把字符串 $t$ 追加到 $s$ 的末尾,然后输出当前 $s$。2.
2 pos t —— 在下标 $pos$ 位置**之前**插入字符串 $t$($0$ 为开头,$|s|$ 为末尾),然后输出当前 $s$。3.
3 pos len —— 从下标 $pos$ 开始删除长度为 $len$ 的子串(保证合法),然后输出当前 $s$。4.
4 old new —— 将 $s$ 中所有 $old$ 的**不重叠出现**从左到右替换为 $new$,然后输出当前 $s$。其中 $old$ 保证非空,且本题**限定 $new$ 也必须非空**。5.
5 t —— 输出字符串 $t$ 在当前 $s$ 中**第一次出现**的下标($0$ 开始),若不存在则输出 $-1$。> 说明:
>
> - 所有下标均为 $0$ 开始。
> - 操作 $1,2,3,4$ 输出当前 $s$;操作 $5$ 输出一个整数。
> - “不重叠出现”按从左到右扫描,匹配后跳过被匹配片段继续扫描。
输入格式
第一行:初始字符串 $s$。
第二行:一个整数 $Q$。
接下来 $Q$ 行:每行一条操作,格式如题目描述所示。
第二行:一个整数 $Q$。
接下来 $Q$ 行:每行一条操作,格式如题目描述所示。
输出格式
共输出 $Q$ 行:
- 对于操作 $1,2,3,4$,输出当前的 $s$;
- 对于操作 $5$,输出匹配到的下标或 $-1$。
- 对于操作 $1,2,3,4$,输出当前的 $s$;
- 对于操作 $5$,输出匹配到的下标或 $-1$。
输入输出样例
输入 #1
hello 4 2 0 hi 4 l x 5 hihe 3 2 3
输出 #1
hihello hihexxo 0 hixo
- $1 \le |s| \le 10^5$;
- $1 \le Q \le 2\times 10^5$;
- 所有出现的字符串均为非空的小写英文字母串;
- 操作 $2$ 中 $0 \le pos \le |s|$;
- 操作 $3$ 中保证 $0 \le pos \le |s|-len$;
- 操作 $4$ 中 $old$、$new$ 均非空;
- 为保证可运行性,测试时保证所有操作合法,且在整个过程中「$s$ 的长度」与「累计插入/追加/替换产生的新文本总长度」均不超过 $2\times 10^5$。
- $1 \le Q \le 2\times 10^5$;
- 所有出现的字符串均为非空的小写英文字母串;
- 操作 $2$ 中 $0 \le pos \le |s|$;
- 操作 $3$ 中保证 $0 \le pos \le |s|-len$;
- 操作 $4$ 中 $old$、$new$ 均非空;
- 为保证可运行性,测试时保证所有操作合法,且在整个过程中「$s$ 的长度」与「累计插入/追加/替换产生的新文本总长度」均不超过 $2\times 10^5$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?