76. 最小覆盖子串-力扣hot100(C++)

76. 最小覆盖子串s

初始化和特判

//本题做题思想
//从头开始,首先找到一个包含所有字母的字串,将i移动到包含字串字母的位置,然后更新长度和字符串ans后,
//i的位置加1,j的位置也加1,从新开始上面的流程,找一个包含所有字符串t字母的子串unordered_map<char,int>need;//need记录下来每个字母‘需要’多少,为正数//对于不需要的字母和本来需要但超出数量的字母,依旧记录,但减1后变负数int cnt = 0;//cnt记录总共需要多少个int ansnum = 100010;//ans记录最短的字符子串,ansnum维护最小的长度string ans = "";if(s.size() < t.size() ) return ans;if(s == t) return s;

统计字符数

for(int i = 0; i < t.size();i++){need[t[i]]++;
}
cnt = t.size();

找满足题目条件的字符子串

int i = 0, j = 0;while(i < s.size()){while(j < s.size() && cnt > 0){if(need[s[j]] > 0) cnt--;need[s[j]]--;if(cnt == 0 || j == s.size() - 1)break;j++;//while循环记得递增}if(cnt != 0) return ans;while(i < j){if(need[s[i]] == 0) break;need[s[i]]++;i++;//while循环记得递增}if(j - i  + 1 < ansnum){ans = s.substr(i, j - i + 1);ansnum = j - i + 1;}cnt += 1;need[s[i]]++;i++,j++;//记得递增}

具体解析过程可看此题解,本题解为C++实现,链接题解为python

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/743255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Docker】常用命令 docker run

文章目录 什么是docker run命令基本用法常用选项-d&#xff1a;后台运行--name&#xff1a;指定容器名称-p&#xff1a;端口映射-v&#xff1a;挂载数据卷-e&#xff1a;设置环境变量 实际示例运行一个简单的Web服务器运行一个交互式Shell 总结 在Docker中&#xff0c; docker…

Python实战:Python控制结构:条件语句if...else...

在Python编程中&#xff0c;条件语句是用于根据特定条件执行不同代码路径的基本控制结构。本文将详细介绍Python中的条件语句if…else…&#xff0c;包括其语法、工作原理、使用场景和最佳实践。 1. 条件语句的基本语法 Python中的条件语句使用if、elif&#xff08;可选&…

仿真一些记录

1、Vivado生成库文件 在vivado的TCL窗口输入“compile_simlib -simulator modelsim -directory {E:\library\vivado}”&#xff0c;生成vivado的库文件。 2、Modelsim&#xff08;PE、DE、SE&#xff09;不同版本的区别 ModelSim PE (Personal Edition) is the industry-lead…

【MODBUS】Java实现的Modbus协议类库——推荐j2mod库

目录 一、j2mod 二、Modbus4J 三、Jamod 在Java中&#xff0c;有几个流行的库可以用于实现Modbus协议以读取设备数据。以下是一些常用的库&#xff1a; 一、j2mod 这是jamod Modbus库的一个分支&#xff0c;取自1.2.1版本&#xff0c;根据Apache 2许可证发布&#xff0c;包…

目标检测YOLO实战应用案例100讲-【目标检测】Halcon(工具应用篇)(四)

目录 Halcon和Opencv 的对比 Halcon OpenCV halcon防止多窗口闪烁 halcon频域和空间域转换 理论基础 举例说明

软考高级:需求变更管理过程概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

C++学习随笔(4)——类和对象的初探

本章我们来初步学习一下C中的类和对象&#xff01; 目录 1.类的引入 2.类的定义 类的两种定义方式&#xff1a; 3.类的访问限定符及封装 3.1 访问限定符 3.2 封装 4.类的作用域 5.类的实例化 6.类对象模型 6.1 如何计算类对象的大小 6.2 类对象的存储方式猜测 6.3 …

这个学习Python的神仙网站,后悔没早点发现

Python 作为时下最流行的编程语言&#xff0c;很多初学者都将它作为自学编程的首选。不管是有编程经验的开发者&#xff0c;还是新手小白&#xff0c;在这个 AIGC 时代&#xff0c; Python 都可以带你探索新世界。 入门 Python 绝非难事&#xff0c;但如何让自己坚持学下去是如…

用虚拟机安装win10超详细教程。

前言&#xff1a;安装中有任何疑问&#xff0c;可以在评论区提问&#xff0c;博主身经百战会快速解答小伙伴们的疑问 BT、迅雷下载win10镜像&#xff08;首先要下载win10的镜像&#xff09;&#xff1a;ed2k://|file|cn_windows_10_business_editions_version_1903_updated_sep…

Jmeter---跨越线程组传值

1. 创建两个线程组&#xff0c;并添加请求&#xff0c;设置变量并将其设置为全局变量 2. 设置全局变量&#xff1a;使用函数助手的 setProperty 函数&#xff0c;填写相应内容 3. 设置全局变量&#xff1a;创建一个beanShell&#xff0c;把函数生成的内容粘贴过来 4. 获取全局变…

六 超级数据查看器 讲解稿 详情1 概述

六 超级数据查看器 讲解稿 详情1 概述 点此此处 以新界面 打开B站 当前视频教程 APP下载地址 百度 下载地址 ​ 讲解稿全文&#xff1a; 大家好&#xff0c;今天我们讲解一下超级数据查看器详情界面。由于内容较多&#xff0c;讲解要分为7集&#xff0c;这是第一集 首…

【leetcode热题】寻找旋转排序数组中的最小值 II

难度&#xff1a; 困难通过率&#xff1a; 38.7%题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如&#xff0c;数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的…

【etcd】的限流设计

一、etcd限流实现 从etcd v3.4版本开始&#xff0c;etcd开始使用golang.org/x/time/rate库来实现限流器。这个库提供了一个简单的令牌桶算法来实现速率限制。etcd使用这个库来控制客户端请求的速率&#xff0c;以防止过载和服务中断。 golang.org/x/time/rate库的主要功能包括…

FastWiki v0.1.0发布!新增超多功能

FastWiki 发布 v0.1.0 https://github.com/239573049/fast-wiki/releases/tag/v0.1.0 更新日志 兼容OpenAI接口格式删除Blazor版本UI删除useEffect,解决可能存在问题的bug修复对话可以看到所有对话Merge branch ‘master’ of https://gitee.com/hejiale010426/fast-wiki更新…

搭建Hadoop3.x完全分布式集群

零、资源准备 虚拟机相关&#xff1a; VMware workstation 16&#xff1a;虚拟机 > vmware_177981.zipCentOS Stream 9&#xff1a;虚拟机 > CentOS-Stream-9-latest-x86_64-dvd1.iso Hadoop相关 jdk1.8&#xff1a;JDK > jdk-8u261-linux-x64.tar.gzHadoop 3.3.6&am…

软考高级:系统工程方法(霍尔三维结构、切克兰德方法等)概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

Python (用户登录、身份归属地查询添加异常处理、绘制多角星、电影信息提取)

任务一&#xff1a;用户登录 登录系统通常分为普通用户与管理员权限&#xff0c;在用户登录系统时&#xff0c;可以根据自身权限进行选择登录。本任务要求实现一个用户登录的程序&#xff0c;该程序分为管理员用户与普通用户&#xff0c;其中管理员账号密码在程序中设定&#…

04_拖动文件渲染在页面中

新建一个文件夹&#xff0c;跟之前一样&#xff0c;在 Vscode 终端里输入 yarn create electron-app Drag。 在 index.html 添加以下代码&#xff0c;JS 文件夹和 render.js 都是新创建的&#xff1a; 首先&#xff0c;css 文件一般和 html 结合使用&#xff0c;相当于 html 是…

Linux字符设备驱动开发一

linux字符设备驱动 0 驱动介绍1 字符设备驱动1.1 字符设备相关概念和结构体1.2 实现简单的字符设备模块1.3 创建字符设备1.4 总结 应用程序调用文件系统的API(open、close、read、write) -> 文件系统根据访问的设备类型&#xff0c;调用对应设备的驱动API -> 驱动对硬件进…

Overload的方法是否可以改变返回值的类型?(企业真题)

Overload的方法是否可以改变返回值的类型? 只跟方法名和形参列表有关系&#xff0c;和返回值无关。在形参列表不一样的前提下才可以改 public void method(int i){} public int method(int j,int k){}