833. Find And Replace in String
class Solution:
def findReplaceString(self, s: str, indices: List[int], sources: List[str], targets: List[str]) -> str:
def sort_arrays(arr1, arr2, arr3):
combined = zip(arr1, arr2, arr3)
sorted_combined = sorted(combined)
arr1_sorted, arr2_sorted, arr3_sorted = zip(*sorted_combined)
return list(arr1_sorted), list(arr2_sorted), list(arr3_sorted)
indices, sources, targets = sort_arrays(indices, sources, targets)
startPos = 0
res = []
for i in range(len(indices)):
source = sources[i]
if s[indices[i] : indices[i] + len(source)] == source:
if startPos != indices[i]:
res.append(s[startPos : indices[i]])
res.append(targets[i])
startPos = indices[i] + len(source)
if startPos < len(s):
res.append(s[startPos:])
return "".join(res)