D. 字符串消除游戏

    传统题 1000ms 256MiB

字符串消除游戏

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

字符串消除游戏

题目描述

小明沉迷于一个字符串消除游戏……

给定一个只包含小写字母的一个模式串 pp 和字符串 ss ,你需要反复执行如下操作:

  • 若当前字符串中有子串与模式串相等,则删除字符串中与之相等的部分,剩余部分拼接成一个新字符串 ss'

每次操作,你必须删除最靠左的那一次匹配(即起始下标最小的匹配),并将左右两段字符串拼接起来,直到字符串中没有与 pp 相等的子串 ,其中 p|p| 代表字符串 pp 的长度。

小明想知道总共进行了多少次消除操作,以及最后一次消除操作后的字符串。

子串:字符串中连续的一段(可以全选)。

输入格式

第一行一个字符串,表示模式串 pp (1p2×105)(1 ≤ |p| ≤ 2 \times 10^5)

第二行一个字符串,表示初始字符串 ss (1s2×105)(1 ≤ |s|≤ 2 \times 10^5)

注意:字符串 ppss都只由小写字符构成,且 ps|p| ≤ |s|

输出格式

输出二行,第一行一个整数,第二行一个字符串,分别表示消除操作的总次数以及消除后的字符串。(如果全消除,则输出空串。)

输入输出样例 #1

输入 #1

ab
aabbc

输出 #1

2 
c

说明/提示

初始模式串 p=abp = ab,字符串 s=aabbcs = aabbc

第一次消除:

从左到右找第一个与 pp 相等的子串: ss22 个字符 aa 和第 33 个字符 bb 正好匹配 pp(起始下标 22)。

删掉 "abab": "aaaa" ++"bcbc" → 拼接后 "abcabc"

第二次消除:

在 "abcabc" 中找 "abab": 第 121、2 个字符 "aa"、"bb" 匹配 pp。 删掉后剩下 "cc"。

剩下的子串没有与 pp 匹配的,结束。

消除次数 =2= 2,最后一次消除后的字符串 == "cc"。

PS:必须输出两行;第二行即使为空也要输出一个换行(空行),且不要输出行末多余空格。

【睿爸信奥】入门组算法周赛(20260222)

未参加
状态
已结束
规则
IOI
题目
5
开始于
2026-2-22 0:00
结束于
2026-2-27 20:00
持续时间
3.5 小时
主持人
参赛人数
19