AtCoder ABC 218 B – qwerty Python解説
qwerty
1 以上 26 以下の整数からなる長さ 26 の数列 P=(P1,P2,…,P26) が与えられます。
AtCoder Beginner Contest「qwerty」
ここで、P の要素は相異なることが保証されます。
以下の条件を満たす長さ 26 の文字列 S を出力してください。
任意の i(1≤i≤26) について、S の i 文字目は辞書順で小さい方から Pi番目の英小文字である。
辞書順で i 番目の英小文字を出力していく問題です。26個の数列Pと対応するアルファベットをひとつずつ繋げて、最後に出力すれば大丈夫です。
p = list(map(int, input().split()))
a = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
"k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
ans = ""
for i in range(26):
ans += a[p[i] - 1]
print(ans)
上記のコードでは"a"から"z"までのアルファベットを書きましたが、アスキーコードを使うと、もっと簡単に実装することができます。
p = list(map(int, input().split()))
ans = ""
for i in range(26):
ans += chr(p[i] + 96)
print(ans)
Pythonではchr関数を使うことで、アスキーコードの文字列に変換することができます。"a"はアスキーコードの97から始まるので、あとは数列Pの数値を足していけば、アルファベットを出力することができます。