直接上代码!
2026-07-27 12:43:42
发布于:云南
3阅读
0回复
0点赞
直接上代码!
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 5000005;
string str;
ll k, sum = 0;
char c1, c2;
ll 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;
}
全部评论 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








有帮助,赞一个