【AtCoder】ABC296解説(Python)

AtCoder Beginner Contest 296の解説記事です。

目次

ABC296 A – Alternately

問題

問題文の要約は以下の通りです。

問題の要約

MおよびFからなる長さ N の文字列 SMFが交互に並んでいるか判定せよ。

入力

N
S

出力

 条件を満たす場合はYes、満たさない場合はNo と出力せよ。

方法1

同じ文字が連続しているかどうかをfor文で判定する。

解説

前から順に同じ文字が連続しているかどうか判定する。
i文字目とi+1文字目が同じかどうかはS[i]==S[i+1]と書けば判定できます。

解答

N = int(input())
S = input()
 
for i in range(N-1):
    if S[i]==S[i+1]:
        print('No')
        exit()
print('Yes')

方法2

同じ文字が連続しているかどうかを文字列を含むかで判定する。

解説

MFが交互に並んでいるということはMMFFを含まないことと同じことである。

含まないことはnot in Sで書けるので、'MM' not in Sかつ 'FF' not in Sで判定できます。

解答

N = int(input())
S = input()

if 'MM' not in S and 'FF' not in S:
  print('Yes')
else:
  print('No')
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次