[未解決の問題]白俊1406(スタック/キュー)



一般的な問題なのでinsertとdelを使ってリストを修正できますが、0.3秒の限られた時間では時間がかかりすぎます(O(N)).次に、カーソルの左側リストとカーソルの右側リストを作成し、比較的少ないappendとpopを使用して問題を解決します.( O(1) )
import sys

left = list(input())
n = int(input())
right = []
orders = []
for _ in range(n):
    orders.append(list(sys.stdin.readline().split()))

for order in orders:
    if order[0] == 'P':
        left.append(order[1])
    elif order[0] == 'L':
        if left:
            right.append(left.pop())
    elif order[0] == 'D':
        if right:
            left.append(right.pop())
    else:
        if left:
            left.pop()

right.reverse()
print(''.join(left) + ''.join(right))