C++競プロ学習日記(仮)

( 学習記録であり解説Blogではないです )

文字列カウント

今週は文字列強化週間で、文字列の問題をTLで捕捉したので解いてみた。

/*----------問題文引用----------*/

AとBで作られた文字列Sが与えられる。Sの長さは100以下である。
S中のBは好きなアルファベットに変えることができる。
Sに含まれる文字列ABCDの個数は最大でいくつになるか?

入力例1
ABBABBBBAABBB
出力例1
2

入力例2
BBBB
出力例2
1

/*--------------------------------*/

#include <bits/stdc++.h>
using namespace std;
int main(){
    string s;
    int count{0};
    cin>>s;
    const int len = s.size();
    for(int i=0; i<len; i++){
        if(s[i]=='A'&&s[i+1]=='B'&&s[i+2]=='B'&&s[i+3]=='B'){
            count++;
            i+=3;
        }else if(s[i]=='B'&&s[i+1]=='B'&&s[i+2]=='B'&&s[i+3]=='B'){
            count++;
            i+=3;
        }
    }
    cout << count << endl;  
	return 0;
}

最初、else ifでなくifとしていてWAだった。
(ABBBBBのケースで落ちた)
ちょっと考えたら分かりそうだけど、分からないのでダメ(反省
でもiを文字数分進めるなど学習的だった。