2109. Adding Spaces to a String LeetCode Solution
In this guide, you will get 2109. Adding Spaces to a String LeetCode Solution with the best time and space complexity. The solution to Adding Spaces to a String problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Adding Spaces to a String solution in C++
- Adding Spaces to a String solution in Java
- Adding Spaces to a String solution in Python
- Additional Resources

Problem Statement of Adding Spaces to a String
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.
Example 1:
Input: s = “LeetcodeHelpsMeLearn”, spaces = [8,13,15]
Output: “Leetcode Helps Me Learn”
Explanation:
The indices 8, 13, and 15 correspond to the underlined characters in “LeetcodeHelpsMeLearn”.
We then place spaces before those characters.
Example 2:
Input: s = “icodeinpython”, spaces = [1,5,7,9]
Output: “i code in py thon”
Explanation:
The indices 1, 5, 7, and 9 correspond to the underlined characters in “icodeinpython”.
We then place spaces before those characters.
Example 3:
Input: s = “spacing”, spaces = [0,1,2,3,4,5,6]
Output: ” s p a c i n g”
Explanation:
We are also able to place spaces before the first character of the string.
Constraints:
1 <= s.length <= 3 * 105
s consists only of lowercase and uppercase English letters.
1 <= spaces.length <= 3 * 105
0 <= spaces[i] <= s.length – 1
All the values of spaces are strictly increasing.
Complexity Analysis
- Time Complexity: O(n)
- Space Complexity: O(n)
2109. Adding Spaces to a String LeetCode Solution in C++
class Solution {
public:
string addSpaces(string s, vector<int>& spaces) {}
};
/* code provided by PROGIEZ */
2109. Adding Spaces to a String LeetCode Solution in Java
class Solution {
public String addSpaces(String s, int[] spaces) {
StringBuilder sb = new StringBuilder();
int j = 0; // spaces' index
for (int i = 0; i < s.length(); ++i) {
if (j < spaces.length && i == spaces[j]) {
sb.append(' ');
++j;
}
sb.append(s.charAt(i));
}
return sb.toString();
}
}
// code provided by PROGIEZ
2109. Adding Spaces to a String LeetCode Solution in Python
class Solution:
def addSpaces(self, s: str, spaces: list[int]) -> str:
ans = []
j = 0 # spaces' index
for i, c in enumerate(s):
if j < len(spaces) and i == spaces[j]:
ans.append(' ')
j += 1
ans.append(c)
return ''.join(ans)
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.