AtCoder ABC 043 B – バイナリハックイージー Python解説

2021年11月21日

スポンサーリンク

バイナリハックイージー

しぐはキーボードを製作しました。シンプルさを極限まで追求したこのキーボードには、0 キー、1 キー、バックスペースキーの 3つしかキーがありません。

手始めに、しぐはこのキーボードで簡単なテキストエディタを操作してみることにしました。このエディタには常に一つの文字列が表示されます(文字列が空のこともあります)。エディタを起動した直後では、文字列は空です。キーボードの各キーを押すと、文字列が次のように変化します。

0 キー: 文字列の右端に文字 0 が挿入される。

1 キー: 文字列の右端に文字 1 が挿入される。

バックスペースキー: 文字列が空なら、何も起こらない。そうでなければ、文字列の右端の 1文字が削除される。

しぐはエディタを起動し、これらのキーを何回か押しました。しぐが押したキーを順番に記録した文字列 s が与えられます。

s の中の文字 0 は 0 キー、文字 1 は 1 キー、文字 B はバックスペースキーを表します。いま、エディタの画面にはどのような文字列が表示されているでしょうか?

AtCoder株式会社 AtCoder Beginner Contest 043

0と1の場合は、文字列に0と1を追加していきます。バックスペースキーの時に右端の1文字を削除する方法は、スライスを使っていきます。

s = "abc"

print(s[: -1])

#ab

上記のようにスライスを使うことで一番右端の文字だけ削除することができます。

では、問題を解いていきましょう。

s = input()

ans = ""

for key in s:
    if key == "0":
        ans += "0"
    
    elif key == "1":
        ans += "1"
    
    elif key == "B":
        ans = ans[: -1]
        
print(ans)