题解 | #小红的子串#

小红的子串

https://ac.nowcoder.com/acm/problem/260770

思路

滑动窗口 + 前缀和

过程

alt

代码

#include <iostream>
#include <string>
#include <cstring>

using namespace std;

const int N = 2e5 + 10;

int n, l, r;
string s;

long long find(int x)
{
    int l = 0, r = 0, kind = 0, h[26] = { 0 };
    long long ans = 0;
    while(r < n)
    {
        if(h[s[r] - 'a'] ++ == 0) kind ++;
        while(kind > x) if(-- h[s[l ++] - 'a'] == 0) kind --;
        ans += r - l + 1;
        r ++;
    }
    return ans;
}

int main()
{
    cin >> n >> l >> r >> s;
    cout << find(r) - find(l - 1) << endl;
    return 0;
}
全部评论

相关推荐

挣K存W养DOG:我记得好多人说这个公司就是白嫖方案的,现在有大体方案要让你给他展示实现细节了,也是无敌了
点赞 评论 收藏
分享
这就是上等人的社会吗:都先停一停,有没有hxd告诉我在哪里点京东外卖,捣鼓半天,注册成了专送骑手查看图片
投递美团等公司10个岗位 > 京东美团大战,你怎么看?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务