NC28 最小覆盖子串

本文探讨了滑动窗口算法如何用于解决字符串处理中的各种问题,如最小覆盖子串、字符串排列、字母异位词统计和最长无重复子串。通过使用双指针和哈希映射,我们可以有效地在O(n)时间内找到解决方案。文章提供了具体的代码实现,展示了如何在实际编程中运用滑动窗口技巧。
摘要由CSDN通过智能技术生成

NC28 最小覆盖子串 滑动窗口的思想

这道题目用到了滑动窗口这一大杀器,它可以解决如下问题:

最小覆盖子串(LeetCode76)
字符串排列(LeetCode567)
统计字母异位词(LeetCode438)
最长无重复子串(LeetCode3) 

滑动窗口的基本思想:

用两个字典分别维护窗口中字符的统计数量、以及被求解子串中字符的统计数量
用双指针遍历主字符串,双指针的初始值均为0,窗口的范围是[left, right)(左闭右开)
遍历过程中,不断增大、缩小窗口,并更新状态 
class Solution {
   
public:

     map<char,int> window,mp;
    string minWindow(string S, string T) {
   
        
        string s=S,t=T;
       
        
        for(int i=0;i<t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值