https://leetcode.com/problems/make-the-string-great/description/ Easy

Условие

Дана строка s, содержащая заглавные и строчные буквы английского алфавита. Строка называется «великой», если в ней нет двух соседних символов, образующих пару одной буквы в разных регистрах (например, aA или Aa). Нужно многократно удалять такие пары до тех пор, пока строка не станет «великой», и вернуть итоговую строку.

Решение

class Solution {
    fun makeGood(s: String): String {
        val stack = StringBuilder()
        for (c in s) {
            if (stack.isNotEmpty() && kotlin.math.abs(stack.last() - c) == 'a' - 'A') {
                stack.deleteCharAt(stack.length - 1)
            } else {
                stack.append(c)
            }
        }
        return stack.toString()
    }
}