ABC053-B - A to Z String を解く
ABC053-B - A to Z String
与えられた文字列内にある連続する部分文字列の中で
'A' で始まって 'Z' で終わるもののうち、一番長いものを求める問題
そういった連続する部分文字列が1つしか存在しない場合は
適当に取っても特に問題はないが、複数存在する場合は注意が必要である
例:
'ABCZDEFZ' の場合
×: 'ABCZDEFZ'
○: 'ABCZDEFZ'
つまり、'A' や 'Z' が文字列中に複数存在する場合は
'A' は最も左にあるものを、'Z' は最も右にあるものを選ぶ必要がある
以上を踏まえて書いたコードを以下に示す
提出したコード
# 入力 s=input() # 'A'と'Z'の位置を保存する変数 a=z=-1 for i in range(len(s)): if a==-1 and s[i]=='A': a=i if s[i]=='Z': z=i # 出力 print(z-a+1)
それぞれの文字列位置を引き算しただけでは
抜き出した文字列の長さに 1 足りないので、+1 する必要がある
また、上記コードでは a を 0 などで初期化していると
'AAZ' などのパターンで失敗してしまうので注意
提出結果はACでした