题单练习 字符串

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++ 编辑器
输入
输出