Newer
Older
from typing import List, Tuple
def replace(original_string: str, replacements: List[Tuple[int, int, str]]):
"""
Replaces substrings in a string.
Parameters
----------
original_string : str
The original string.
replacements : List[Tuple[int, int, str]]
A list of tuples containing (start, end, replacement).
Returns
-------
str
The string with replacements applied.
"""
replacements = sorted(replacements, key=lambda x: x[0])
delta = 0
for replacement in replacements:
original_string = original_string[:replacement[0] + delta] + replacement[2] + original_string[replacement[1] + delta:]
delta += len(replacement[2]) - (replacement[1] - replacement[0])
return original_string