解説つき!競ってわかる はじめてpythonプログラミング

競プロの情報発信と備忘録を兼ねている

ABC236A

ABC236A の解説

atcoder.jp

解答コード

https://atcoder.jp/contests/abc236/submissions/28777934

 

問題

文字列Sの先頭からa文字目とbb文字目を入れ替える問題です.

 

解説

str型のi番目の文字の情報を上書きするような操作は難しいので,
一旦,list型にすることが簡潔だと思います.

S = list(input())

 

また,問題文は先頭の文字は1 番目からカウントしますが,
プログラミングでは0番目としてカウントを開始するので注意が必要です.

a, b = map(lambda x: int(x)-1, input().split())

lambda関数を使用しない場合は,

a, b = map(int, input().split())
a -= 1
b -= 1

と記述しても同義ですが,変数がたくさんあると困るのでlambda関数を使いましょう!

 

標準入力を読み込んだら,a番目とb番目の文字をスワップします.

S[a], S[b] = S[b], S[a]

 

文字の順番を操作するためlist型で扱いましたが,最後はstr型に戻す必要があります.

ans = ''.join(S)

 

joinを使わない場合は,

ans = ''
for s in S:
    ans += s

のような記述になると思います.

 

以上,ABC236Aの解法でした.