833. 字符串中的查找与替换bahttps://leetcode.cn/problems/find-and-replace-in-string/
| 2023-8-15
0  |  阅读时长 0 分钟
Date
Aug 15, 2023
need_review
need_review
type
undo
undo
难度
中等
你会得到一个字符串 s (索引从 0 开始),你必须对它执行 k 个替换操作。替换操作以三个长度均为 k 的并行数组给出:indicessources,  targets
要完成第 i 个替换操作:
  1. 检查 子字符串 sources[i] 是否出现在 原字符串 s 的索引 indices[i] 处。
  1. 如果没有出现, 什么也不做 。
  1. 如果出现,则用 targets[i] 替换 该子字符串。
例如,如果 s = "abcd" , indices[i] = 0 , sources[i] = "ab", targets[i] = "eee" ,那么替换的结果将是 "eeecd" 。
所有替换操作必须 同时 发生,这意味着替换操作不应该影响彼此的索引。测试用例保证元素间不会重叠 
  • 例如,一个 s = "abc" , indices = [0,1] , sources = ["ab","bc"] 的测试用例将不会生成,因为 "ab" 和 "bc" 替换重叠。
在对 s 执行所有替换操作后返回 结果字符串 。
子字符串 是字符串中连续的字符序列。
 
示例 1:
notion image
示例 2:
notion image
提示:
  • 1 <= s.length <= 1000
  • k == indices.length == sources.length == targets.length
  • 1 <= k <= 100
  • 0 <= indexes[i] < s.length
  • 1 <= sources[i].length, targets[i].length <= 50
  • s 仅由小写英文字母组成
  • sources[i] 和 targets[i] 仅由小写英文字母组成

解法1
条件1: sources[i]能否在s的指定位置找到(indices[i]).
True → 替换targets[i]
False → pass
条件2: 替换操作不会影响索引
→ 额外开一个字符串
时间空间复杂度都是
notion image
  • Giscus
目录