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