class Solution { public String stringShift(String s, int[][] shift) { Deque chars = new ArrayDeque<>(); for (char c : s.toCharArray()) { chars.push(c); } for (int[] ar : shift) { for (int i = 0; i < ar[1]; i++) { if (ar[0] == 1) { Character c = chars.pollFirst(); chars.addLast(c); } else { Character c = chars.pollLast(); chars.addFirst(c); } } } StringBuilder sb = new StringBuilder(); Character last = chars.pollLast(); while (last != null) { sb.append(last); last = chars.pollLast(); } return sb.toString(); } }