字符串问题之 最小包含子串长度

【c++】LeetCode76. 最小覆盖子串 LeetCode76. 最小覆盖子串 https://leetcode-cn.com/problems/minimum-window-substring 给你一个字符串 S、一个字符串 T 。请你设计一种算法,可以在 O(n) 的时间复杂度内,从字符串 S 里面找出:包含 T 所有字符的最小子串。 示例: 输入:S = “ADOBECODEBANC”, T = “ABC” 输出:“BANC” 提示: 如果 S 中不存这样的子串,则返回空字符串 “”。 如果 S 中存在这样的子串,我们保证它是唯一的答案。 阅读详情

字符串问题之 最小包含子串长度

str1 和 str2  求str1 的子串 中含有str2 的所有字符的最小字串长度

   例如: 

 str1 ="abcde"

 str2="ac"    返回3

本题适合用还款方法  str1 去还 str2 里面的元素

package TT;

public class Test7 {

    public static int minLength(String str1, String str2){
          
        if(str1 == null || str2 == null || str1.length() < str2.length()){
            return 0;
        }
        char[] chas1 =  str1.toCharArray();
        char[] chas2 =  str2.toCharArray();
        int[] map = new int[256];
        
        for(int i = 0; i!=chas2.length;i++){
            map[chas2[i]]++;
        }
        
        int left = 0;
        int right = 0;
        int match = chas2.length;
        int minLen = Integer.MAX_VALUE;
        
        while(right != chas1.length){
            
            map[chas1[right]]--;
            if(map[chas1[right]] >=0){
                 match--;
            }
            if(match==0){
                
                while(map[chas1[left]]<0){
                    map[chas1[left++]]++;
                }
                
                minLen = Math.min(minLen, right-left+1);
                match++;
                map[chas1[left++]]++;
            }
            right++;
        }
        
        return minLen == Integer.MAX_VALUE ? 0 :minLen;
        
    }
    
    
    
    public static void main(String[] args){
        
         String str1 ="abcde";
         String str2 = "ac";
         int a  =  minLength(str1, str2);
         System.out.println(a);
        
        
    }
    
    
}

 

posted @ 2017-08-22 21:03 toov5 阅读( ...) 评论( ...) 编辑 收藏
LeetCode 最小覆盖子串(双指针窗口滑动) 给定一个字符串 S 和一个字符串 T,请在 S 中找出包含 T 所有字母的最小子串。 示例: 输入: S = &quot;ADOBECODEBANC&quot;, T = &quot;ABC&quot; 输出: &quot;BANC&quot; 说明: 如果 S 中不存这样的子串,则返回空字符串 &quot;&quot;。 如果 S 中存在这样的子串,我们保证它是唯一的答案。 思路分析:题目的要求是在s串中找出一段字符串各个字符出现的次数刚 阅读详情

相关推荐

C2000 CLA协处理器:嵌入式实时控制性能优化与实战指南

在嵌入式实时控制系统中,主CPU常因高频率、低延迟的控制算法而面临性能瓶颈。为解决此问题,协处理器技术应运而生,它通过硬件并行架构分担计算密集型任务,从而提升系统整体性能。其核心原理在于独立的计算单元与总线设计,能够实现近乎零延迟的响应,这对于电机驱动、数字电源等闭环控制场景具有极高的技术价值。本文聚焦于德州仪器C2000系列微控制器中的控制律加速器(CLA),深入解析其作为独立浮点协处理器如何通过任务调度与消息RAM通信机制,有效实现性能倍增,并提供了从内存配置到代码调试的完整工程实践方案。

weixin_29192211的博客 305

【算法】【字符串模块】求str1包含str2的最小子串长度

求str1包含str2的最小子串长度

qq_39760347的博客 582

3.ESP32S3 AP 配网开发实战:HTTP 与 WebSocket 协议实现

本文介绍了基于ESP32S3的AP配网实现方案,通过HTTP协议提供配网网页,利用WebSocket实现双向通信。详细解析了HTTP和WebSocket协议特点,阐述了SPIFFS文件系统存储HTML网页的方法,包括分区表配置、CMakeLists设置和代码实现。工程采用模块化设计,包含WiFi管理、Web服务器、IO扩展等组件,支持手机浏览器直接配网。测试验证了从AP热点连接到路由器切换的全流程,并总结了SPIFFS操作、WebSocket通信等核心优化点。该方案无需专用APP,适合物联网设备快速部署场景

u011697185的专栏 961

给定一个字符串,找到包含该字符串所有字符的最短子串

转自:https://blog.youkuaiyun.com/jiewuyou/article/details/45061971 这题是豌豆荚二面的一个算法题,和leetcode的某些题目类似。其思路是这样的 首先遍历一次字符串,求出字符串不同字符的数目 为每一个字符保存一个列表,记录该字符在字符串中出现的索引 记录待求字符串的首字母的索引start(初始值为0),结束索引end(初始值为length-1...

xcw_1987的博客 2948

Polardb训练营-本地部署 PolarDB-X

PolarDB-X是阿里巴巴自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。云原生+MySQL生态PolarDB-X已作为标准云产品在世界范围内的13个地区提供服务。依托云资源和容器化部署能力,PolarDB-X可以在数分钟内完成集群创建和变配,整个过程中用...

yangjunfeng0604的博客 2475

A Super-Resolution Imaging Method for Forward-Looking Scanning Radar Based on Improved TV论文阅读

具体而言,作者提出了一种改进的总变差(Improved Total Variation, ITV)方法,通过引入。论文旨在解决前视扫描雷达(Forward-Looking Scanning Radar)超分辨率成像中传统。(Batch Processing),以增强图像边缘特征的保留能力,并提升计算效率。论文的核心创新点在于对传统TV正则化的邻域梯度计算进行扩展,提出。ITV剖面(图3d)在噪声下仍保持矩形边缘,仅存。​(公式10):实现稀疏约束。),抑制远端单元贡献。(幅度远低于目标)。

yangqoor的博客 1241

寻找字符串A中完全包含字符串B的最短子字符串

已知两个字符串a和b。寻找字符串a

linshengchao123的专栏 3695

STM32实战开发(65):STM32摄像头图像采集开发教程

我们将会详细介绍如何使用STM32进行摄像头控制、图像数据采集以及如何将采集到的图像数据传输到其他设备进行处理。通过这篇博客,您将能够掌握STM32与摄像头模块的图像采集技术,应用于各种图像处理场景。为了确保STM32能够正确接收图像数据,我们需要配置STM32的GPIO引脚,并通过外部中断捕获这些信号。为了实现更高效的图像采集,可以通过DMA进行数据传输,将图像数据直接从GPIO引脚存储到内存中。通过DMA传输,我们可以将采集到的图像数据直接存储在内存中的一个缓冲区,然后进行后续的图像处理。

2201_76125393的博客 2540

最小子串

最小子串 题目:给一个字符串s1,和一个小串s2,求算法能在s1中找到包含s2里所有字符的最小子串。比如: s1 = “ADOBECODEBANC” s2 = “ABC” 最小子串是 “BANC”,要求O(N)的算法。 分析: 设置两个指针p1,p2,初始化指向s1串的开头。当p1, p2指针之间的s1子串字母包含s2全部字符时,p1++,当两个

whz_zb的专栏 2482

MATLAB库函数unwrap(相位解卷绕)的C语言实现

什么是相位解卷绕 Q = unwrap(P) Q = unwrap(P) corrects the radian phase angles in a vector P by adding multiples of ±2π when absolute jumps between consecutive elements of P are greater than or equal to the default jump tolerance of π radians. If P is a matrix, unw

业精于勤,荒于嬉 4248

注意力机制模块:CVPR 2026 新宠:MLLA(多尺度线性注意力)即插即用,在 YOLO 和 ConvNeXt 上全面涨点

MLLA核心创新点与实践价值摘要(146字) 清华大学LeapLab团队通过解构Mamba模型,发现其核心优势源于遗忘门机制与块设计,而非传统SSM架构。基于此提出的MLLA模块创新性地将这两项设计融入线性注意力框架:1)用位置编码替代循环计算保留遗忘门的位置感知能力;2)通过门控投影+DWConv+MLP重构高效块结构。在COCO检测任务中,MLLA使小目标AP提升11.6%而仅损失6%FPS,支持ONNX/TensorRT全链路部署,代码已开源。该工作为高分辨率视觉任务提供了近乎零代价的性能提升方案。

ZXSXJ的博客 156

76. 最小覆盖子串

76. 最小覆盖子串 给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。 示例: 输入: S = “ADOBECODEBANC”, T = “ABC” 输出: “BANC” 说明: 如果 S 中不存这样的子串,则返回空字符串 “”。 如果 S 中存在这样的子串,我们保证它是唯一的答案。 滑动窗口 class Solution(object): def minWindow(self, s, t): """ :type s

夜幕下的日蚀 142

22、嵌入式软件随机延迟生成与加密算法防护技术

本文探讨了嵌入式软件中的随机延迟生成方法与块密码软件实现的高阶掩码及洗牌技术。重点介绍了浮动均值延迟生成方法,其在8位AVR平台上的实现效率为Θ(1),显著提升了抗相关功率分析(CPA)攻击的能力,相比传统方法更安全且轻量。同时,分析了高阶掩码与洗牌技术结合的方案,通过理论建模量化其对高级差分功率分析(DPA)攻击的抵抗能力,并以AES为例展示了该方案的应用流程。最后对比了不同防护技术在安全性与开销之间的权衡,为实际应用中选择合适的安全策略提供了依据。未来可进一步优化实现效率并融合多种防护手段以应对复杂安全

fern8的博客 88

字符串问题---最小包含子串的长度

【题目】  给定字符串str1和str2,求str1的子串中含有str2所有字符的最小子串长度。【举例】  str1 = “aabcde”, str2 = “ca”。返回3.   str1 = “12345”, str2 = “344”。返回0.【基本思路】  使用一个哈希表记录str2中每一个字符出现的次数。需要四个变量:left,right表示str1子串str1[left…right]的两边

冰殇的博客 4468

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Leetcode 76. 最小覆盖子串

76. 最小覆盖子串 给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。 示例: 输入: S = "ADOBECODEBANC", T = "ABC" 输出: "BANC" 说明: 如果 S 中不存这样的子串,则返回空字符串 ""。 如果 S 中存在这样的子串,我们保证它是唯一的答案。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/minimum-window-substring 著作权归领扣网

mikkymerediiii的博客 192

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

2.7 字符串-最小包含子串的长度

Q: 给定字符串str1 和 str2 ,求str1的子串中含有str2所有字符的最小长度 分析: 1)在str1中找到含有str2所有字符的子串,首先这个子串长度一定 >= Str2.length。考虑用一个 str2的length值来计算,此问题涉及到每个字符的数量,在简单问题:计算char[]中每个字符的数量时,使用的桶排序,本题中也应使用类似的结构来解题 2)解题思路:滑动窗口+桶; 使用一个桶来装str2的所有字符的数量,然后先向右扩张窗口,遍历到桶中原有字符时且该字符的数值>0,此时

qq_45629150的博客 692

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Minimum Window Substring 最小覆盖子串算法

题目  最小子串覆盖  描述 笔记  数据  评测 给定一个字符串source和一个目标字符串target,在字符串source中找到包括所有目标字符串字母的子串。 您在真实的面试中是否遇到过这个题?  Yes  注意事项 如果在source中没有这样的子串,返回"",如果有多个这样的子串,返回起

指尖飞舞 6515

[每日一题]2696. 删除子串后的字符串最小长度

你可以对此字符串执行一些操作,在每一步操作中,你可以从 s 中删除 任一个 “AB” 或 “CD” 子字符串。通过执行操作,删除所有 “AB” 和 “CD” 子串,返回可获得的最终字符串的 最小 可能长度。注意,删除子串后,重新连接出的字符串可能会产生新的 “AB” 或 “CD” 子串。给你一个仅由 大写 英文字符组成的字符串 s。解释:无法执行操作,字符串长度不变。输入:s = “ABFCACDB”忘了push和push_back。输入:s = “ACBBD”

qq_45482289的博客 436

2696. 删除子串后的字符串最小长度 01.27(二)

FCACDB" 中删除子串 "AB",得到 s = "FCACDB"。B" 中删除子串 "CD",得到 s = "FCAB"。你可以对此字符串执行一些操作,在每一步操作中,你可以从。" 中删除子串 "AB",得到 s = "FC"。,删除子串后,重新连接出的字符串可能会产生新的。子串,返回可获得的最终字符串的。可以证明 2 是可获得的最小长度。无法执行操作,字符串长度不变。最终字符串的长度为 2。英文字符组成的字符串。通过执行操作,删除所有。

小小路灯的博客 433

2696. 删除子串后的字符串最小长度

FCACDB" 中删除子串 "AB",得到 s = "FCACDB"。B" 中删除子串 "CD",得到 s = "FCAB"。你可以对此字符串执行一些操作,在每一步操作中,你可以从。" 中删除子串 "AB",得到 s = "FC"。,删除子串后,重新连接出的字符串可能会产生新的。方法一:水题,循环执行删除对应字母的流程即可。子串,返回可获得的最终字符串的。可以证明 2 是可获得的最小长度。无法执行操作,字符串长度不变。最终字符串的长度为 2。英文字符组成的字符串。通过执行操作,删除所有。

stay hungry ! stay foolish! 713

程序员代码面试指南刷题--第五章.最短包含字符串的长度

题目描述 给定字符串str1和str2,求str1的字串中含有str2所有字符的最小字符串长度。 输入描述: 输入包括两行,第一行一个字符串,代表str1,第二行也是一个字符串,代表str2。 输出描述: 输出str1的字串中含有str2所有字符的最小字符串长度,如果不存在请输出0。 示例1 输入 abcde ac 输出 3 说明 “abc”中包含“ac”,且“abc”是所有满足条件中最小的。 示例2 输入 12345 344 输出 0 解法一:利用哈希表 import java.io.*

我不是什么好人 940

【1234. 替换子串得到平衡字符串】

具体的,我们使用滑动窗口来维护区间 [l, r) 之外的剩余部分中 ‘Q’,‘W’,‘E’,‘R’ 的出现次数,当其中一种字符的出现次数大于 partial 时,令 s[r] 的出现次数减 1,并使得 r 向右移动一个单位。设 partial = n / 4 ,我们选择 s 的一个子串作为「待替换子串」,只有当 s 剩余的部分中 ‘Q’,‘W’,‘E’,‘R’ 的出现次数都小于等于 partial 时,我们才有可能使 s 变为「平衡字符串」。不难发现,随着 l 的递增,r 也是递增的。

Sugar_wolf的博客 507

LeetCode每日一题 | 2696. 删除子串后的字符串最小长度

观察删除和拼接的规律,可以发现可以使用栈进行模拟,即通过将元素弹出栈来模拟删除的过程。你可以对此字符串执行一些操作,在每一步操作中,你可以从 s 中删除 任一个 “AB” 或 “CD” 子字符串。通过执行操作,删除所有 “AB” 和 “CD” 子串,返回可获得的最终字符串的 最小 可能长度。注意,删除子串后,重新连接出的字符串可能会产生新的 “AB” 或 “CD” 子串。由于题目要求删除所有"AB"和“CD”子串,并将字符串重新拼接。将字符串全部遍历结束后,栈内元素就是最终字符串的最小可能长度。

qq_45931691的博客 474

leetcode面试经典150题——33 最小覆盖子串(滑动窗口)

该题与32题(详细见上一篇讲解32串联所有单词的子串)很相似,唯一不同的是本题所求子串中不仅包含t中的所有字符,还可以包含其他的字符,因此所求子串和t是一个包含的关系,而32题所求子串和t的字符是一一对应的,没有多余的字符,即子串的长度等于t的长度,而此题子串的长度大于等于t的长度。发现此时窗口不包含t中的所有元素,那么right指针右移,此时窗口包含t中所有的元素,记录此时的子串长度。过程如图所示,阴影部分为当前窗口,其中红色字体的字母为存储在哈希表中的元素,窗口内其它元素不进行存储。

weixin_48144140的博客 1530

2020牛客寒假算法基础集训营1-----eli和字符串

链接:https://ac.nowcoder.com/acm/contest/3002/G 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 eli拿到了一个仅由小写字母组成的字符串。 她想截取一段连续子串,这个子串包含至少 个相同的某个字母。 她想知道,子串的长度最小值是多...

Xmx666666的博客 400
上一篇: 字符串问题之 找到被指定的新类型字符
下一篇: 算法总结之 一行代码求两个数的最大公约数
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值