全部评论 1

  • #include <bits/stdc++.h>
    using namespace std;
    
    using ll = long long;
    const int N = 5000005;  
    
    string str;
    ll k, sum = 0;
    char c1, c2;
    int dp[N];
    
    int main() {
        ios::sync_with_stdio(false); 
        cin.tie(nullptr);
        
        cin >> k;
        cin >> str;
        cin >> c1 >> c2;
        
        int len = str.size();
        
        if (len == 0 || k > len) {
            cout << 0 << endl;
            return 0;
        }
        
        for (int i = len - 1; i >= 0; --i) {
            dp[i] = dp[i + 1];
            if (str[i] == c2) dp[i]++;
        }
        
        for (int i = 0; i + k - 1 < len; ++i) {
            if (str[i] == c1) {
                sum += dp[i + k - 1];
            }
        }
        
        cout << sum << endl;
        return 0;
    }
    

    这个更好

    执行用时:6ms
    内存消耗:5.70MB
    击败了89.11%的用户
    击败了70.82%的用户

    2026-07-27 来自 云南

    0
暂无数据

提交答案之后,这里将显示提交结果~

首页