题解:P17864 [FJCPC 2026] 贝贝拯救FJCPC

· · 题解

题意:输入一个字符串,求 fjcpc 作为子串出现了多少次。

做法:设字符串长度为 n。枚举起点 i\in [0,n-5],然后判断 s_is_{i+1}s_{i+2}s_{i+3}s_{i+4} 是否恰好等于 fjcpc 即可。这里可以使用 substr 函数。对于一个字符串 s,s.substr(i, j) 返回的是以 s_i 开头的、长度为 j 的一段区间构成的字符串。本题我们直接判断 s.substr(i, 5) == "fjcpc" 即可。

#include <bits/stdc++.h>

using namespace std;

signed main() {
    string s;
    cin >> s;
    int res = 0;
    for (int i = 0; i + 4 < s.size(); ++ i ) {
        res += s.substr(i, 5) == "fjcpc";
    }
    cout << res;
}