解题思路:
注意事项:边界
参考代码:
#include <bits/stdc++.h> #define int long long #define rep(i, j, n) for (int i = j; i <= n; i++) #define pii pair<int, int> #define psi pair<string, int> #define pis pair<int, pair<string, int>> using namespace std; template <class T> using pqg = priority_queue<T, vector<T>, greater<T>>; template <class T> using pql = priority_queue<T, vector<T>, less<T>>; string s; int pr[500010]; inline int gsum(int l,int r){ return pr[r]-pr[l-1]; } void solve() { int n; cin>>n; cin>>s; char c,c1; cin>>c>>c1; rep(i,0,s.size()-1){ pr[i+1]+=(s[i]==c1)+pr[i]; } int aws=0; rep(i,0,s.size()-1-n+1){ if(s[i]==c){ aws+=gsum(i+n,s.size()); } } cout<<aws; } int32_t main() { ios::sync_with_stdio(false), cin.tie(0), cout.tie(0); int t; //cin>>t; //while(t--){ solve(); //} return 0; }
0.0分
0 人评分