LeetCode 2109, Medium. Topics: Array, Two Pointers, String, Simulation. View on LeetCode.
Generate this problem as a practice environment: tested reference solution, 20 parametrized pytest cases, and a playground notebook:
Problem
You are given a 0-indexed string s and a 0-indexed integer array spaces that describes the indices in the original string where spaces will be added. Each space should be inserted before the character at the given index.
- For example, given
s = "EnjoyYourCoffee" and spaces = [5, 9], we place spaces before 'Y' and 'C', which are at indices 5 and 9 respectively. Thus, we obtain "Enjoy Your Coffee".
Return the modified string after the spaces have been added.
Examples
Explanation: The indices 8, 13, and 15 correspond to the underlined characters in “LeetcodeHelpsMeLearn”. We then place spaces before those characters.
Explanation: The indices 1, 5, 7, and 9 correspond to the underlined characters in “icodeinpython”. We then place spaces before those characters.
Explanation: We are also able to place spaces before the first character of the string.
Constraints
1 <= s.length <= 3 * 10^5
s consists only of lowercase and uppercase English letters.
1 <= spaces.length <= 3 * 10^5
0 <= spaces[i] <= s.length - 1
- All the values of
spaces are strictly increasing.
Solution
Reference implementation from solution.py on GitHub, full suite in test_solution.py:
Complexity
NeetCode All. Last modified on September 7, 2026