返回题解分享
讨论 / 题解分享/ 帖子详情

子串简写(编程题) - 题解

#include <bits/stdc++.h>
#define int long long
using namespace std;

const int N = 1e5 + 10;
vector<int> x, y;
int k;

signed main()
{
cin >> k;
string s;
char a, b;
cin >> s >> a >> b;

for(int i = 0; i < s.size(); i ++ ) {
if(s[i] == a) x.push_back(i);
if(s[i] == b) y.push_back(i);
}

int ans = 0;
for(int i = x.size() - 1, j = y.size() - 1; i >= 0; i -- )
{
while(x[i] + k - 1 <= y[j] && j >= 0) j -- ;
ans += y.size() - j - 1;
}
cout << ans;
}
0 回复 0 转发 3 喜欢 1 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!