java.lang.Object
g0801_0900.s0833_find_and_replace_in_string.Solution

public class Solution extends Object
833 - Find And Replace in String.<p>Medium</p> <p>You are given a <strong>0-indexed</strong> string <code>s</code> that you must perform <code>k</code> replacement operations on. The replacement operations are given as three <strong>0-indexed</strong> parallel arrays, <code>indices</code>, <code>sources</code>, and <code>targets</code>, all of length <code>k</code>.</p> <p>To complete the <code>i<sup>th</sup></code> replacement operation:</p> <ol> <li>Check if the <strong>substring</strong> <code>sources[i]</code> occurs at index <code>indices[i]</code> in the <strong>original string</strong> <code>s</code>.</li> <li>If it does not occur, <strong>do nothing</strong>.</li> <li>Otherwise if it does occur, <strong>replace</strong> that substring with <code>targets[i]</code>.</li> </ol> <p>For example, if <code>s = &quot;abcd&quot;</code>, <code>indices[i] = 0</code>, <code>sources[i] = &quot;ab&quot;</code>, and <code>targets[i] = &quot;eee&quot;</code>, then the result of this replacement will be <code>&quot;eeecd&quot;</code>.</p> <p>All replacement operations must occur <strong>simultaneously</strong> , meaning the replacement operations should not affect the indexing of each other. The testcases will be generated such that the replacements will <strong>not overlap</strong>.</p> <ul> <li>For example, a testcase with <code>s = &quot;abc&quot;</code>, <code>indices = [0, 1]</code>, and <code>sources = [&quot;ab&quot;,&quot;bc&quot;]</code> will not be generated because the <code>&quot;ab&quot;</code> and <code>&quot;bc&quot;</code> replacements overlap.</li> </ul> <p>Return <em>the <strong>resulting string</strong> after performing all replacement operations on</em> <code>s</code>.</p> <p>A <strong>substring</strong> is a contiguous sequence of characters in a string.</p> <p><strong>Example 1:</strong></p> <p><img src="https://assets.leetcode.com/uploads/2021/06/12/833-ex1.png" alt="" /></p> <p><strong>Input:</strong> s = &ldquo;abcd&rdquo;, indices = [0, 2], sources = [&ldquo;a&rdquo;, &ldquo;cd&rdquo;], targets = [&ldquo;eee&rdquo;, &ldquo;ffff&rdquo;]</p> <p><strong>Output:</strong> &ldquo;eeebffff&rdquo;</p> <p><strong>Explanation:</strong> &ldquo;a&rdquo; occurs at index 0 in s, so we replace it with &ldquo;eee&rdquo;. &ldquo;cd&rdquo; occurs at index 2 in s, so we replace it with &ldquo;ffff&rdquo;.</p> <p><strong>Example 2:</strong></p> <p><img src="https://assets.leetcode.com/uploads/2021/06/12/833-ex2-1.png" alt="" /></p> <p><strong>Input:</strong> s = &ldquo;abcd&rdquo;, indices = [0, 2], sources = [&ldquo;ab&rdquo;,&ldquo;ec&rdquo;], targets = [&ldquo;eee&rdquo;,&ldquo;ffff&rdquo;]</p> <p><strong>Output:</strong> &ldquo;eeecd&rdquo;</p> <p><strong>Explanation:</strong> &ldquo;ab&rdquo; occurs at index 0 in s, so we replace it with &ldquo;eee&rdquo;. &ldquo;ec&rdquo; does not occur at index 2 in s, so we do nothing.</p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= s.length <= 1000</code></li> <li><code>k == indices.length == sources.length == targets.length</code></li> <li><code>1 <= k <= 100</code></li> <li><code>0 <= indexes[i] < s.length</code></li> <li><code>1 <= sources[i].length, targets[i].length <= 50</code></li> <li><code>s</code> consists of only lowercase English letters.</li> <li><code>sources[i]</code> and <code>targets[i]</code> consist of only lowercase English letters.</li> </ul>
  • Constructor Details

    • Solution

      public Solution()
  • Method Details