[アルゴリズム/標準]1406:エディタ(python)



最初はカーソルの位置を数字にして、変更を続けます.その結果、時間を超えることが判明しました...悩んだ末に2つのスタックで実現すればいいと思ったので試してみました2つのスタックを用意して、真ん中にカーソルがあると思います.カーソルを左に移動し、左側のスタックでポップアップし、右側のスタックに追加...こうすれば解けます!!最後に合わせて右側のスタックをひっくり返します.
from sys import stdin


stack1 = list(map(str, stdin.readline().strip()))
stack2 = []

for _ in range(int(stdin.readline().strip())):
    a = list(stdin.readline().strip().split())
    if a[0] == 'L':
        if stack1:
            stack2.append(stack1.pop())

    elif a[0] == 'D':
        if stack2:
            stack1.append(stack2.pop())

    elif a[0] == 'B':
        if stack1:
            stack1.pop()

    else:
        stack1.append(a[1])
stack1.extend(reversed(stack2))
print(''.join(stack1))