文字列カウント
今週は文字列強化週間で、文字列の問題を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を文字数分進めるなど学習的だった。