考えて競プロする

プログラミングコンテストの問題をどう考えて解いたかを記録していくブログです。使用言語はPython3

ABC084-B - Postal Code を解く

ABC084-B - Postal Code

 

与えられた文字列が、「(A文字の数字)-(B文字の数字)

の形式を満たすかを判定する問題

 

文字列全体の長さが A + 1 + B であることは制約で保証されているので

以下の2点を確認すればOK

 

・A + 1文字目が "-" であること

・それ以外の文字列が "0" 〜 "9" であること

 

以上を踏まえて書いたコードを以下に示す

 

提出したコード

# 入力
A,B=map(int,input().split())
S=input()

# A+1番目が'-'出ない場合は'No'
if S[A]!='-':
  print('No')
  exit()
else:
  for x in S[:A]:
    # 1文字目からA文字目までが数字であることを確認
    if x not in '0123456789':
      print('No')
      exit()
  
  for x in S[A+2:]:
    # A+2文字目から最後までが数字であることを確認
    if x not in '0123456789':
      print('No')
      exit()

# 上記のチェックに引っかからなければ形式を満たす文字列である
print('Yes')

 

提出結果はACでした