AtCoder ABC 058 B – ∵∴∵ Python解説

2021年11月21日

スポンサーリンク

∵∴∵

すぬけ君は新しくできたプログラミングコンテストに会員登録しました。 登録に使ったパスワードを覚えておく自信が無かったすぬけ君は、 手元の紙にパスワードをメモしておくことにしました。 ただし、そのままメモをすると誰かにパスワードを盗まれてしまうかもしれないので、 文字列の偶数番目の文字と奇数番目の文字をそれぞれ別々の紙にメモしておくことにしました。

パスワードの奇数番目の文字だけを順番を変えずに取り出した文字列 O と、 偶数番目の文字だけを順番を変えずに取り出した文字列 E が与えられます。 すぬけ君のかわりにパスワードを復元してください。

AtCoder株式会社 AtCoder Beginner Contest

文字列OとEを順番に出力すればいいのですが、文字列OとEの文字数が違う場合があるので、そこに気を付けながら処理をしていきます。

o = input()
e = input()

ans = ""

for i in range(max(len(o), len(e))):
    if i + 1 <= len(o):
        ans += o[i]
        
    if i + 1 <= len(e):
        ans += e[i]
    
print(ans)

まず、ループ回数は文字列OとEをmax関数で比べて、大きいほうに合わせています。続く条件式では、文字列の長さを超えてしまうとエラーになるので、len関数で文字列の長さが超えていないときだけansに文字を加えるようにしています。