LeetCode-in-Java

2390. Removing Stars From a String

Medium

You are given a string s, which contains stars *.

In one operation, you can:

Return the string after all stars have been removed.

Note:

Example 1:

Input: s = “leet**cod*e”

Output: “lecoe”

Explanation: Performing the removals from left to right:

There are no more stars, so we return “lecoe”.

Example 2:

Input: s = “erase*****”

Output: “”

Explanation: The entire string is removed, so we return an empty string.

Constraints:

Solution

public class Solution {
    public String removeStars(String s) {
        StringBuilder sb = new StringBuilder();
        int stars = 0;
        for (int i = s.length() - 1; i >= 0; --i) {
            if (s.charAt(i) == '*') {
                ++stars;
            } else if (stars > 0) {
                --stars;
            } else {
                sb.append(s.charAt(i));
            }
        }
        return sb.reverse().toString();
    }
}