21f44072创建于 2023年8月21日历史提交
class Solution {
    fun decodeString(s: String): String {
        val stack = LinkedList<String>()

        for (c in s) {
            if (c != ']') {
                stack.addLast(c.toString())
            } else {
                val sb = StringBuilder()
                while (stack.isNotEmpty() && stack.peekLast() != "[")
                    sb.insert(0, stack.removeLast())
                stack.removeLast()

                val k = StringBuilder()
                while (stack.isNotEmpty() && stack.peekLast().all { char -> char.isDigit() })
                    k.insert(0, stack.removeLast())

                val times = k.toString().toInt()
                stack.addLast(sb.toString().repeat(times))
            }
        }

        return stack.joinToString("")
    }
}