import java.util.Stack import java.util.StringTokenizer fun main() { val br = System.`in`.bufferedReader() val left = Stack<Char>() val right = Stack<Char>() val str = br.readLine() for (c in str) { left.push(c) } val m = br.readLine().toInt() repeat(m) { val token = StringTokenizer(br.readLine()) when (token.nextToken().first()) { 'L' -> { if (left.isNotEmpty()) { right.push(left.pop()) } } 'D' -> { if (right.isNotEmpty()) { left.push(right.pop()) } } 'B' -> { if (left.isNotEmpty()) { left.pop() } } 'P' -> { left.push(token.nextToken().first()) } } println("left: $left") println("right: $right") } val sb = StringBuilder() while (left.isNotEmpty()) { sb.append(left.pop()) } while (right.isNotEmpty()) { sb.append(right.pop()) } println(sb) }
abc 9 L L L L L P x L B P y
left: [a, b] right: [c] left: [a] right: [c, b] left: [] right: [c, b, a] left: [] right: [c, b, a] left: [] right: [c, b, a] left: [x] right: [c, b, a] left: [] right: [c, b, a, x] left: [] right: [c, b, a, x] left: [y] right: [c, b, a, x] yxabc