You are given a string s
, which contains stars *
.
In one operation, you can:
- Choose a star in
s
. - Remove the closest non-star character to its left, as well as remove the star itself.
- Return the string after all stars have been removed.
Note:
- The input will be generated such that the operation is always possible.
- It can be shown that the resulting string will always be unique.
Example
Input: s = "leet**cod*e"
Output: "lecoe"
Explanation: Performing the removals from left to right:
- The closest character to the 1st star is 't' in "leet**cod*e". s becomes "lee*cod*e".
- The closest character to the 2nd star is 'e' in "lee*cod*e". s becomes "lecod*e".
- The closest character to the 3rd star is 'd' in "lecod*e". s becomes "lecoe".
There are no more stars, so we return "lecoe".
Solution
/**
* @param {string} s
* @return {string}
*/
var removeStars = function (s) {
//FOR the lenght of the string
for (let i = 0; i < s.length; i++) {
//IF the character is a star
if (s[i] === "*") {
//Remove the closest non-star character to its left and the star itself
s = s.slice(0, i - 1) + s.slice(i + 1);
//Decrement i by 2 to account for the removed characters
i -= 2;
}
}
return s;
};