はまやんはまやんはまやん

hamayanhamayan's blog

PASTal Code [第六回 アルゴリズム実技検定 B]

https://atcoder.jp/contests/past202104-open/tasks/past202104_b

解説

https://atcoder.jp/contests/past202104-open/submissions/22645258

文字列をマッチングしてくる実装問題となっている。
連結される文字列はどちらであっても4文字なので、文字長をN文字とすると、N/4グループあることになる。
このグループを先頭からpostと等しいか判定していこう。

C++ならsubstrを使って4文字分抜き出してくるのが、オススメ。
S.substr(i4,4)と書いて、先頭からi4番目から4文字分抜き出すようにしてくる。
iを0-indexedで取ってきていることに注意。
そのため、等しいiが見つかってもi+1を答えること。

string S;
string post = "post";
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> S;

    int N = S.length();
    rep(i, 0, N / 4) {
        if (S.substr(i * 4, 4) == post) {
            cout << i + 1 << endl;
            return;
        }
    }

    cout << "none" << endl;
}