fork download
  1. import java.util.Stack
  2. import java.util.StringTokenizer
  3.  
  4. fun main() {
  5. val br = System.`in`.bufferedReader()
  6. val left = Stack<Char>()
  7. val right = Stack<Char>()
  8. val str = br.readLine()
  9. for (c in str) {
  10. left.push(c)
  11. }
  12. val m = br.readLine().toInt()
  13.  
  14. repeat(m) {
  15. val token = StringTokenizer(br.readLine())
  16. when (token.nextToken().first()) {
  17. 'L' -> {
  18. if (left.isNotEmpty()) {
  19. right.push(left.pop())
  20. }
  21. }
  22. 'D' -> {
  23. if (right.isNotEmpty()) {
  24. left.push(right.pop())
  25. }
  26. }
  27. 'B' -> {
  28. if (left.isNotEmpty()) {
  29. left.pop()
  30. }
  31. }
  32. 'P' -> {
  33. left.push(token.nextToken().first())
  34. }
  35. }
  36.  
  37. println("left: $left")
  38. println("right: $right")
  39. }
  40.  
  41. val sb = StringBuilder()
  42. while (left.isNotEmpty()) {
  43. sb.append(left.pop())
  44. }
  45. while (right.isNotEmpty()) {
  46. sb.append(right.pop())
  47. }
  48. println(sb)
  49. }
Success #stdin #stdout 0.09s 40996KB
stdin
abc
9
L
L
L
L
L
P x
L
B
P y
stdout
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