题库练习 文字处理器
← 上一题 下一题 →

A7051 | 文字处理器

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

给定一个初始字符串 $s$(仅含小写英文字母),依次处理 $Q$ 次操作。共有五类操作:

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$ 行:
- 对于操作 $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
C++ 编辑器
输入
输出