HM192 字牌查找替换
HM192 字牌查找替换
来源: 第 192 集 string容器-字符串查找和替换
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
字牌支持查找指定子串是否出现,以及在指定区间上替换。
查找有两个方向相反的接口,重载很多,常用版本即可:
find:从左往右找。可以指定起始下标,默认从 \(0\) 号位置开始。rfind:从右往左找。返回的下标仍然按从左往右编号。
找到时返回**该子串第一个字符**的下标;找不到返回 \(-1\)。同一子串在字牌里出现两次时,find 与 rfind 的结果会不同。
替换用 replace(pos, cnt, text):从下标 \(pos\) 起的 \(cnt\) 个字符,整段换成 text。换成的内容可以比 \(cnt\) 更长或更短,指定的整段 text 都会写进去。
请先在字牌 \(s\) 上查找子串 \(t\)(find 与 rfind 各一次,都从默认起点开始),再在字牌 \(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:de 在 abcdefgde 中出现两次,从左找是下标 \(3\),从右找是下标 \(7\);abcdefg 从 \(1\) 号起 \(3\) 个字符 bcd 换成 1111,得到 a1111efg。
信息
- ID
- 1191
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者