LeetCode in Kotlin

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

class Solution {
    fun removeStars(s: String): String {
        val sb = StringBuilder()
        var stars = 0
        for (i in s.length - 1 downTo 0) {
            if (s[i] == '*') {
                ++stars
            } else if (stars > 0) {
                --stars
            } else {
                sb.append(s[i])
            }
        }
        return sb.reverse().toString()
    }
}