LoginSignup
0
0

More than 1 year has passed since last update.

【ログ】AtCoder Beginner Contest 150 B - Count ABC

Last updated at Posted at 2022-12-10

問題文

英大文字のみからなる長さ N の文字列 S があります。
S の連続する部分列 (入出力例をご覧ください) として ABC がいくつ含まれるかを求めてください。

入力と出力

N
S

S が連続する部分列として含む ABC の個数を出力せよ。

ACコード

#include
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)

int main() {
    int n;
    string s;

    cin >> n >> s;
    int counter = 0;
// s文字列を全探索。
    rep(i, n-2){
// "ABC"が連続で続いた場合、counter++。
        if(s.at(i) == 'A'){
            if(s.at(i+1) == 'B'){
                if(s.at(i+2) == 'C') {
                    counter++;
                }
            }
        }
    }
    cout << counter << endl;
}

つまずいたところ

コードテスト一回目にループの回数をn回に指定してエラーをはかせた。n-2回ループさせればそれ以降はループの必要はなし。
(n=10の場合、8回目で8文字目、9文字目、10文字目を調べるから)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0