蓝桥杯备考:双指针(滑动窗口)算法之字符串

这道题咱首先用26个元素的数组来充当哈希数组来标记26个字母出现的个数

比如'a'-'a'放在0号元素,'b'-'a'放在1号元素

kind从0开始,如果进窗口的元素之前是0,就让kind++

如果满足kind==26的时候就是合法的一个子串,就进入循环,每次更新字符串长度,让left指的元素出窗口,我们来写一下代码

cpp 复制代码
#include <iostream>
using namespace std;
string s;
int mp[26];
int kind;
int main()
{
    cin >> s;
    int n = s.size();
    int ret = 1e6+10;
    for(int left = 0,right = 0;right <n;right++)
    {
        if(mp[s[right]-'a']++ == 0) kind++;
        while(kind == 26)
        {
            ret = min(ret,right-left+1);
            if(mp[s[left]-'a']-- == 1) kind--;
            left++;
        }
        
    }
    cout << ret << endl;
    
    
    
    
    
    return 0;
}
相关推荐
垆边人似月.8 分钟前
城市连通性(200分 / 并查集)
数据结构·算法·图论
我命由我123459 分钟前
Photoshop - Photoshop 使用简单的选择工具
学习·职场和发展·产品运营·求职招聘·职场发展·学习方法·photoshop
Gust of wind23 分钟前
串与KMP模式匹配:存储结构、基本操作、next数组手算
c语言·数据结构·后端·算法
我命由我1234526 分钟前
Photoshop - Photoshop 使用工具
学习·职场和发展·产品运营·求职招聘·职场发展·产品经理·学习方法
Navigator_Z29 分钟前
LeetCode //C - 1283. Find the Smallest Divisor Given a Threshold
c语言·算法·leetcode
cc57250265337 分钟前
2027 秋招|大数据 / 统计类专业运营管培群面,数据思维落地方法
面试·职场和发展
啦啦啦啦啦zzzz1 小时前
一致性哈希
服务器·算法·哈希算法·c++20·分布式存储
垆边人似月.1 小时前
嵌入式传感器寄存器数据解析
算法
Tingmanyi1 小时前
YOLOv13改进策略【卷积层篇】| RFAConv 感受野注意力卷积,每个位置都值得被单独加权
深度学习·算法·yolo·目标检测·计算机视觉
我命由我123451 小时前
Photoshop - Photoshop 设计概念
学习·职场和发展·产品运营·求职招聘·职场发展·产品经理·学习方法