动态网站asp怎么做百度推广竞价托管
字串简写
数据范围 字符串的长度为5*10的五次方,on方时间复杂度会很大。
才用动态规划的思想,dp[i]以i开头的的可能性,因为长度必须大于等于k,当i小于k的时候,如果等于第一个字符,s1时,dp[i]=dp[i-1]+1,如果不等于dp[i]=dp[i-1];
当i大于k-1时,如果以第二个字符结尾的,ans就需要加上dp[i-k+1]
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 5e5 + 10;
ll dp[N];
int main()
{int k;cin >> k;string s;cin >> s;char s1, s2;cin >> s1 >> s2;int res = 0;for (int i = 1; i < k; i++){dp[i] = dp[i - 1] + (s[i] == s1 ? 1 : 0);}for (int i = k; i < s.length(); i++){dp[i] = dp[i - 1] + (s[i] == s1 ? 1 : 0);if (s[i] == s2){res += dp[i - k];}}cout << res;
}