HM195 字牌插入擦除
HM195 字牌插入擦除
来源: 第 195 集 string容器-字符串插入和删除
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
字牌允许在中间插入一段内容,也允许擦掉一段。
插入用 insert,第一个参数是位置(从 \(0\) 起算)。可以插入 C 风格字符串,也可以插入另一张字牌,还可以插入 \(k\) 个相同字符。
删除用 erase:从指定位置起删掉给定个数。
注意:下标从 \(0\) 开始。对 hello 来说,\(0\) 号是 h,\(1\) 号才是 e。在 \(1\) 号位置插入 111,得到 h111ello;再从 \(1\) 号起擦掉 \(3\) 个,就回到 hello。
请对同一张底牌做三次独立操作(每次都从原始字牌出发):先插入一段 C 风格字符串,再插入 \(k\) 个相同字符,最后按位置和长度擦除。
输入格式
第一行一个不含空白的字符串 \(s\)。
第二行一个整数 \(p_1\) 和一个不含空白的字符串 \(w\),表示 insert(p1, w)。
第三行两个整数 \(p_2\)、\(k\) 和一个字符 \(ch\),表示 insert(p2, k, ch)。
第四行两个整数 \(p_3\)、\(cnt\),表示 erase(p3, cnt)。
输出格式
共三行:
- 在原始 \(s\) 上插入 \(w\) 之后的结果
- 在原始 \(s\) 上插入 \(k\) 个 \(ch\) 之后的结果
- 在原始 \(s\) 上擦除之后的结果
样例
输入 #1
hello
1 111
0 2 x
1 3
输出 #1
h111ello
xxhello
ho
输入 #2
ab
0 Z
1 3 *
1 1
输出 #2
Zab
a***b
a
说明
\(1 \le |s|,|w| \le 1000\),\(1 \le k \le 100\)。所有下标合法:\(0 \le p_1,p_2 \le |s|\)(可以插在末尾),\(0 \le p_3 < |s|\),\(1 \le cnt\) 且 \(p_3+cnt \le |s|\)。
三次操作互相独立,都从原始 \(s\) 拷一份再改。插入位置是「插到该下标上,原下标及后面的字符右移」。
信息
- ID
- 1194
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者