【刷题】双指针

双指针

76. 最小覆盖子串

给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。
注意:
对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。
如果 s 中存在这样的子串,我们保证它是唯一的答案。
示例 1:
输入:s = “ADOBECODEBANC”, t = “ABC”
输出:“BANC”
解释:最小覆盖子串 “BANC” 包含来自字符串 t 的 ‘A’、‘B’ 和 ‘C’。
示例 2:
输入:s = “a”, t = “a”
输出:“a”
解释:整个字符串 s 是最小覆盖子串。
示例 3:
输入: s = “a”, t = “aa”
输出: “”
解释: t 中两个字符 ‘a’ 均应包含在 s 的子串中,
因此没有符合条件的子字符串,返回空字符串。

class Solution {
public:unordered_map <char, int> ori, cnt;bool check() {for (const auto &p: ori) {if (cnt[p.first] < p.second) {return false;}}return true;}string minWindow(string s, string t) {for (const auto &c: t) {++ori[c];}int l = 0, r = -1;int len = INT_MAX, ansL = -1, ansR = -1;while (r < int(s.size())) {if (ori.find(s[++r]) != ori.end()) {++cnt[s[r]];}while (check() && l <= r) {if (r - l + 1 < len) {len = r - l + 1;ansL = l;}if (ori.find(s[l]) != ori.end()) {--cnt[s[l]];}++l;}}return ansL == -1 ? string() : s.substr(ansL, len);}
};

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

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

相关文章

C++this指针与静态成员函数的使用方法

this指针 在C中&#xff0c;this指针是一个非常重要的概念&#xff0c;它指向当前对象&#xff0c;可以在成员函数中使用&#xff0c;以访问对象的非静态成员变量和非静态成员函数。而静态成员函数则是一个与类关联的函数&#xff0c;而不是与类的实例关联的函数。 下面分别对…

在PyCharm中运行OpenCV

一、安装Anaconda配置python环境 这里选用清华大学开源软件镜像站&#xff1a;anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 下载的速度更快。 点击下载链接&#xff1a;Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsin…

linux磁盘的分区,格式化文件系统,以及挂载

目录 磁盘 介绍 机械 HDD 固态SSD 磁盘分区&#xff1a; 磁盘分区类型 MBR分区方式 GPT分区方式 制作文件系统 挂载磁盘 文件类型 磁盘命令 磁盘分区类型切换 mkfs&#xff1a;格式化文件系统操作 mount&#xff1a;挂载文件系统到目录 umount &#xff1a;取消…

统信桌面版arm系统安装火狐浏览器和浏览器驱动

一、系统信息 二、下载浏览器和驱动 1、浏览器 https://security.debian.org/debian-security/pool/updates/main/f/firefox-esr/firefox-esr_115.5.0esr-1~deb10u1_arm64.deb 2、驱动 https://github.com/mozilla/geckodriver/releases geckodriver-v0.33.0-linux-aarch6…

鸿蒙【HarmonyOS】开发初体验

官方开发文档 依照官方开发文档进行配置&#xff0c;官方的文档很详细&#xff08;虽然有些粗糙&#xff09;。 其实只要下载了deveco studio&#xff0c;其他就按照next来就行了。配置都很清楚。 顺便提一下&#xff0c;deveco是基于intellij 的&#xff0c;体验很不错&…

什么是供应链攻击?

随着企业越来越依赖技术、连接性和第三方&#xff0c;供应链攻击变得越来越普遍。这些攻击旨在通过供应商和业务合作伙伴损害公司。 供应链攻击可能对企业和组织构成重大威胁&#xff0c;损害其安全以及向客户提供的产品和服务的安全。 在本文中&#xff0c;我们将探讨供应链…

springboot 2.x集成h2数据库

1.引入pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency><groupId>com.h2database</groupId><artifactId>h2<…

gRPC之grpc负载均衡(resolver)

1、grpc负载均衡(resolver) 1.1 proto编写和编译 syntax "proto3";option go_package "./;echo";package echo;message EchoRequest {string message 1; }message EchoResponse {string message 1; }service Echo {rpc UnaryEcho(EchoRequest) retur…

C# Thread.Sleep 与 await Task.Delay 的本质区别,和异步方法中踩到的坑。

主要区别 Thread.Sleep&#xff1a; 挂起当前线程一段时间。 await Task.Delay&#xff1a; 将当前执行代码的线程空出来&#xff0c;优先去执行其他任务。 在等待时间结束后&#xff0c;交给线程池中的线程接继续执行。 这意味着&#xff0c;经过该方法后&#xff0c;执行当…

Pytest 的小例子

一个简单的例子 下面代码保存到test_pytest.py 一个简单的例子 def inc(x):return x 1def test_answer():assert inc(3) 5def test_ask():assert inc(4) 5 pytest 需要安装一下 pip install pytest (Venv) D:\pythonwork>pip install pytest Collecting pytestDown…

【Java】JDK命令使用总结

目录 1. javac 2. java 1. javac 将源码(*.java)编译成字节码(*.class) javac HelloWorld.java 2. java 运行字节码(*.class)。注意不能加后缀名。 java HelloWorld 直接运行单文件源码(*.java)。注意Java11以上才支持。 java HelloWorld.java

《数据结构、算法与应用C++语言描述》-优先级队列-大根堆的C++实现

优先级队列 完整可编译运行代码见&#xff1a;Github::Data-Structures-Algorithms-and-Applications/_25Priority queue 定义 优先级队列&#xff08;priority queue&#xff09;是0个或多个元素的集合&#xff0c;每个元素都有一个优先权或值&#xff0c;对优先级队列执行…

面向对象之绑定方法

【1】绑定给对象的方法 绑定给对象方法&#xff0c;对象能调用&#xff0c;类也能调用 # 对象调用会把对象自己当成第一个参数传给方法的第一个形参 对象.方法(参数1&#xff0c;参数2) -------- self参数不用传 # 类调用&#xff0c;方法中有几个参数就要传几个参数(包括…

Sitecore “Insert Link“ 时,默认 Ttarget 设置

一、简介 在我们使用 Sitecore “Insert Link“ 通常会插入站内的链接&#xff0c;通常情况下 Sitecore 默认的 Target 时 Custom&#xff0c;如果不想跳新的浏览器 Tab &#xff0c;就需要手动修改为 Active Browser。如何默认就是 Active Browser 呢&#xff0c;这就是我们今…

[问题解决] no CUDA-capable device is detected

先说环境&#xff0c;在docker下的gpu环境ffmpeg&#xff0c;然后今天突然无法使用&#xff0c;使用时出现如下图所示&#xff1a; 看着报错大致内容是找不到设备&#xff0c;网上寻找一番没有有用的东西&#xff0c;于是决定自己解决&#xff0c;仔细察看一番后&#xff0c;猜…

“华为杯”研究生数学建模竞赛2019年-【华为杯】C题:视觉情报信息分析(续)(附Python代码实现)

目录 五、任务三 5.1 任务分析 5.2 模型建立 5.3 模型计算 5.4 模型评价 六、任务四

MQTT发布_订阅架构(Pub_Sub)

MQTT发布/订阅架构&#xff08;Pub/Sub&#xff09; 本文中&#xff0c;将深入研究Pub/Sub架构&#xff0c;在软件架构中一个消息模式&#xff0c;它支持不同组件或系统之间以解耦的方式进行通信。 在前一片文章[MQTT简介]http://t.csdnimg.cn/6lNeZ中&#xff0c;对MQTT有一个…

svn服务端安装

1.下载svn 2.创建一个文件夹 /usr/svn/dev 3.svnadmin create /usr/svn/dev 4.修改/usr/svn/dev/config下的目录的配置文件 authz&#xff1a;权限配置文件&#xff0c;控制读写权限passwd&#xff1a;账号密码配置文件svnserve.conf&#xff1a;svn服务器配置文件 修改svnse…

注解Annotation - Java

注解Annotation 一、介绍二、使用三、三个基本的Annotation四、JDK内置的基本注解类型1、Override2、Deprecated3、SuppressWarnings 五、JDK的元注解1、Retention2、Target3、Documented4、Inherited 一、介绍 注解&#xff08;Annotation&#xff09;也被称为元数据&#xf…

算法通关村第一关—青铜挑战—用Java基本实现各种链表操作

文章目录 第一关—链表【青铜挑战】1.1 单链表的概念1.2 链表的相关概念1.3 创建链表 - Java实现1.4 链表的增删改查1.4.1 遍历单链表 - 求单链表长度1.4.2 链表插入 - 三种位置插入&#xff08;1&#xff09;在链表的表头插入&#xff08;2&#xff09;在链表的中间插入&#…