HM192 字牌查找替换

HM192 字牌查找替换

HM192 字牌查找替换

来源: 第 192 集 string容器-字符串查找和替换

难度: 普及-

时间限制: 1s

空间限制: 64MB

题目描述

字牌支持查找指定子串是否出现,以及在指定区间上替换。

查找有两个方向相反的接口,重载很多,常用版本即可:

  • find:从左往右找。可以指定起始下标,默认从 \(0\) 号位置开始。
  • rfind:从右往左找。返回的下标仍然按从左往右编号。

找到时返回**该子串第一个字符**的下标;找不到返回 \(-1\)。同一子串在字牌里出现两次时,findrfind 的结果会不同。

替换用 replace(pos, cnt, text):从下标 \(pos\) 起的 \(cnt\) 个字符,整段换成 text。换成的内容可以比 \(cnt\) 更长或更短,指定的整段 text 都会写进去。

请先在字牌 \(s\) 上查找子串 \(t\)(findrfind 各一次,都从默认起点开始),再在字牌 \(u\) 上做一次替换。

输入格式

第一行不含空白的字符串 \(s\)。

第二行不含空白的字符串 \(t\),表示要查找的子串。

第三行不含空白的字符串 \(u\),表示被替换的字牌。

第四行两个整数 \(pos\)、\(cnt\) 和一个不含空白的字符串 \(w\),表示 replace(pos, cnt, w)

输出格式

第一行:若 find 找到,输出 找到 和一个空格,再输出下标;否则输出 未找到

第二行:对 rfind 用同样格式。

第三行:替换后的 \(u\)。

样例

输入 #1

abcdefgde
de
abcdefg
1 3 1111

输出 #1

找到 3
找到 7
a1111efg

输入 #2

abcdefg
zz
hello
0 2 X

输出 #2

未找到
未找到
Xllo

说明

\(1 \le |s|,|t|,|u|,|w| \le 1000\),\(0 \le pos < |u|\),\(1 \le cnt\) 且 \(pos+cnt \le |u|\)。字符串只含可见非空白字符。下标从 \(0\) 算。

样例 #1:deabcdefgde 中出现两次,从左找是下标 \(3\),从右找是下标 \(7\);abcdefg 从 \(1\) 号起 \(3\) 个字符 bcd 换成 1111,得到 a1111efg

信息

ID
1191
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者