AtCoder-ABC218 A - Weather Forecast / B - qwerty【Python解答例】
AtCoder Beginner Contest218のA とB問題についてPythonの解答例を記事にしていきます。
AtCoder Beginner Contest 218 - AtCoder
AtCoder Beginner Contest218 A - Weather Forecast
問題文
明日からの 7 日間の天気予報を表す文字列 S が与えられます。
i 日後の予報は S の i 文字目が o であるとき晴れ、x であるとき雨です。
N 日後の天気予報が晴れかどうかを教えてください。
制約
・N は 1 以上 7 以下の整数
・S は長さ 7 の文字列であり、o と x のみからなる
解答例
n = int(input()) s = input() if s[n-1] == "o": print("Yes") else: print("No")
解説
文字列SのN文字目がoかxかを答える問題です。
Nは整数なのでint型で、Sは文字列なのでstr型で入力を受け取ります。
SのN文字目はS[N-1]なのでS[N-1]がoならYesを出力し、oでないならNoを出力すればOKです。
AtCoder Beginner Contest218 B - qwerty
問題文
1 以上 26 以下の整数からなる長さ 26 の数列 P=(P 1 ,P 2 ,…,P 26 ) が与えられます。ここで、P の要素は相異なることが保証されます。
以下の条件を満たす長さ 26 の文字列 S を出力してください。
・任意の i(1≤i≤26) について、S の i 文字目は辞書順で小さい方から P i 番目の英小文字である。
制約
・1 ≤ P i ≤ 26
・P i ≠ P j (i ≠ j)
・入力は全て整数である。
解答例
P = list(map(int, input().split())) ans = "" for i in range(26): tmp = chr(P[i] + 96) ans += tmp print(ans)
解説
Pythonの場合、chr(値)で数値を文字列に変換できます。
asciiコードの97がaに該当するので、chr(P[i] + 96)においてP[i] = 1なら a 、P[i]= 26ならzに変換できます。
これで26個の整数を英子文字に置き換えて、ansに足しあわせていきました。
最後にansを出力すればACでした。
ABC218の関連記事はこちら
ebisuke33.hatenablog.com
ebisuke33.hatenablog.com