g2101_2200.s2109_adding_spaces_to_a_string.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g2101_2200.s2109_adding_spaces_to_a_string;
// #Medium #Array #String #Simulation #2022_05_31_Time_24_ms_(89.33%)_Space_94.5_MB_(48.03%)
/**
* 2109 - Adding Spaces to a String\.
*
* Medium
*
* 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 **Y**our **C**offee"`.
*
* 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 "Leetcode**H**elps**M**e**L**earn".
*
* 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 "i**c**ode**i**n**p**y**t**hon".
*
* 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**.
**/
public class Solution {
public String addSpaces(String string, int[] spaces) {
char[] stringChars = new char[string.length() + spaces.length];
for (int i = 0; i < spaces.length; i++) {
stringChars[spaces[i] + i] = ' ';
}
int equivalentIndex = -1;
int i = 0;
while (i < string.length()) {
equivalentIndex++;
if (stringChars[equivalentIndex] == ' ') {
i--;
} else {
stringChars[equivalentIndex] = string.charAt(i);
}
i++;
}
return new String(stringChars);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy