【ABC150 B】「Count ABC」を解く【Python3】

abc150b

コンテスト一覧へ

 

長さNの文字列Sの中に連続する部分列「ABC」がいくつ含まれるか答える問題です。

提出
n = int(input())
s = input()

print(s.count("ABC"))

入力はN,Sのみです。この2つを受け取って、n,sに代入します。

nは整数ですが、今回は使用しないので、「input()」のみでも大丈夫ですね。

count()メソッドを利用して、sの中に「ABC」がいくつ含まれるのかを数えて出力します。

 

他には、for文を使って求めることもできます。

提出
n = int(input())
s = input()
ans = 0

for i in range(n-2):
    if s[i:i+3] == "ABC":
        ans += 1

print(ans)

こちらはスライス機能を使って、「i 番目」から「i+2 番目」までが「ABC」であるかどうかを判定し、最終的にそれがいくつあったのかを出力しています。

スライス機能

スライスを用いてインデックスを指定すると、特定の範囲の文字列を取得することができます。

インデックスは0から始まることに注意です。

開始インデックスから終了インデックスの一つ前まで取得します。

s = "atcoder"
print(s[2:5])
# > "cod"

【ABC150】解説記事リスト

コンテスト一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。