Wannafly挑战赛23 A :字符串(尺取法)

╰半夏微凉° 2022-05-14 06:28 292阅读 0赞

题目传送门
代码:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int maxn=1000000+100;
  4. char ch[maxn];
  5. int cnt[30];
  6. bool check(){
  7. for(int i=0;i<26;i++) if(!cnt[i]) return false;
  8. return true;
  9. }
  10. int main(){
  11. scanf("%s",ch);
  12. int len=strlen(ch);
  13. int l=0,r=0;
  14. int Min=len;
  15. while(r<len){
  16. while(!check() && r<len) cnt[ch[r++]-'a']++;
  17. while(check()) cnt[ch[l++]-'a']--;
  18. if(r<=len) Min=min(Min,r-l+1);
  19. }
  20. printf("%d\n",Min);
  21. }

发表评论

表情:
评论列表 (有 0 条评论,292人围观)

还没有评论,来说两句吧...

相关阅读

    相关 总结

    一般地,当我们要去枚举满足条件的区间权值的区间,可以用遍历双指针 l 和 r 的做法去枚举第一个满足条件的区间,然后去维护其他数据,这样的做法就是尺取法,它的复杂度为O(n)

    相关 模板

      题目描述 博览馆正在展出由世上最佳的 M 位画家所画的图画。 wangjy想到博览馆去看这几位大师的作品。 可是,那里的博览馆有一个很奇怪的规定,就是在购买门票

    相关 算法--

    尺取法 尺取法通常是指对数组保存一对下标(起点,终点),然后根据实际情况交替推进两个端点直到得出答案的方法,这种操作很像是尺取虫爬行的方式故得名。 我们先来看看POJ的

    相关 Wannafly 挑战赛5

    A 题: 星神是来自宇宙的 所以珂朵莉也是吧 所以我就出了个题 给你一个长为n的序列a,有n\(n+1)/2个子区间,问这些子区间里面和为完全平方数的子区间个数 in

    相关 Wannafly挑战赛9

    A 题目描述 给定n个正整数,请找出其中有多少个数x满足:在这n个数中存在数y=kx,其中k为大于1的整数 输入描述: 第一行输入一个n