AtCoder ABC 084 B – Postal Code Python解説

スポンサーリンク

Postal Code

Atcoder国では、郵便番号は A+B+1 文字からなり、A+1 文字目はハイフン -、それ以外の全ての文字は 0 以上 9 以下の数字です。

文字列 S が与えられるので、Atcoder国の郵便番号の形式を満たすかどうか判定してください。

AtCoder Beginner Contest 084 「Postal Code」

与えられた文字列SがAtCoder国の郵便番号の形式を満たすかどうか判定する問題。
判定する項目はA+1文字目がハイフンかどうか、それ以外の文字は0-9かどうかの2つなので、特に問題なく解けるかと思います。

a, b = map(int, input().split())
s = input()

flag = True

for i in range(a + b + 1):
    if i == a:
        if s[i] != "-":
            flag = False
            break
    else:
        if not "0" <= s[i] <= "9":
            flag = False
            break
            
print("Yes" if flag else "No")

文字列がAtCoder国の郵便番号の形式を満たすかどうかはflagで管理しています。
続くfor文の最初のif文でハイフンかどうか 見ています。for文が0番目から始まるので、A+1文字目でなくA文字目になっているので注意。

あとは文字列が0-9の数字になっているか判定しています。intで数値に変換しなくても比較できるので、そのまま比較しています。