最小覆盖子串【子串】【滑动窗口】【哈希】

Problem: 76. 最小覆盖子串

文章目录

  • 思路 & 解题方法
  • 复杂度
  • Code

思路 & 解题方法

窗口左右边界为i和j,初始值都为0,j一直往右搜索,然后记录一下窗口内的字符是否达到了全部覆盖,如果达到了,那么就开始i往右搜索,找最短的子串,直到不满足全部覆盖了,那么再继续搜j

复杂度

时间复杂度:

添加时间复杂度, 示例: O ( n ) O(n) O(n)

空间复杂度:

添加空间复杂度, 示例: O ( n ) O(n) O(n)

Code

class Solution:def minWindow(self, s: str, t: str) -> str:need = collections.defaultdict(int)for ch in t:need[ch] += 1count = len(t)i = 0res = (0, math.inf)for j, ch in enumerate(s):if need[ch] > 0:count -= 1need[ch] -= 1if count == 0:      # 包含了所以元素了while True:c = s[i]if need[c] == 0:breakneed[c] += 1i += 1if j - i < res[1] - res[0]:res = (i, j)need[s[i]] += 1i += 1count += 1if res[1] == math.inf:return ""else:return s[res[0]: res[1] + 1]

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

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

相关文章

交换机04_远程连接

通过远程管理方式连接交换机 1、telnet简介 telnet 是应用层协议 基于传输层TCP协议的&#xff0c;默认端口&#xff1a;23 采用的是明文密码方式 不是很安全&#xff0c;一般用于内网管理。 2、ssh协议简介 ssh 是应用层的协议&#xff0c;基于传输层的TCP协议&#x…

打造清晰的日志管理策略:如何在 NestJS 中集成 winston 高级日志系统

前言 在Web应用程序的开发过程中&#xff0c;日志管理是不可或缺的一部分。日志可以帮助我们了解应用程序的运行状态&#xff0c;监控系统行为&#xff0c;以及在出现问题时快速定位和解决问题。 对于使用NestJS框架的项目来说&#xff0c;集成一个高效、可扩展的日志系统尤为…

面试官:说说接口和抽象类有什么区别

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…

高密集型数据服务--第2章 数据模型与查询语言

一、引言 数据模型可能是开发软件最重要的部分,而且还对如何思考待解决的问题都有深远的影响。 大多数应用程序是通过一层一层叠加数据模型来构建的。每一层都面临的关键问题是&#xff1a;如何将其用下一层来表示&#xff1f; 1.作为一名应用程序开发人员&#xff0c;观测现实…

Python中的cls语法

在Python中&#xff0c;cls 是一个用于指代类本身的约定性名称&#xff0c;通常用作类方法&#xff08;class method&#xff09;中的第一个参数。cls 类似于 self&#xff0c;它是对类的引用&#xff0c;而不是对实例的引用。cls 通常在类方法中用于访问类级别的属性和方法。举…

kafka处理大量消息积压tips —— 筑梦之路

一、consumer导致kafka积压了大量消息 场景&#xff1a; 1. 如果是Kafka消费能力不足&#xff0c;则可以考虑增加 topic 的 partition 的个数&#xff0c; 同时提升消费者组的消费者数量&#xff0c;消费数 分区数 &#xff08;二者缺一不可&#xff09; 2. 若是下游数据处理…

cookie和session的区别

cookie和session主要有以下区别&#xff1a; 1. 存放的位置&#xff1a; cookie: 浏览器端 session: 服务器端 2. 安全性&#xff1a; cookie是以明文的方式存放在客户端的&#xff0c;安全性相对较低 session存放于服务器中&#xff0c;所以安全性相对较好 3. 网络传输量…

LeetCode 28 找出字符串中第一个匹配项的下标

题目描述 找出字符串中第一个匹配项的下标 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 示例 1&…

LLM Agent之数据分析领域的应用

数据分析&#xff1a;Data-Copilot paper: Data-Copilot: Bridging Billions of Data and Humans with Autonomous Workflow github: https://github.com/zwq2018/Data-Copilot 先介绍下浙大提出的已扩展的数据分析框架&#xff0c;支持多种金融数据类型的查询&#xff0c;数…

Vue3-40-路由- 动态路由

说明 本文主要介绍了 对路由的动态配置&#xff0c;主要包括以下几个部分&#xff1a;1、判断某个路由是否存在&#xff1b;2、查看路由对象中的所有路由配置&#xff1b;3、添加一个路由&#xff1b;4、删除一个路由。针对上述四个方面&#xff0c;vue-router 中提供了对应的…

论文笔记 Understanding Electricity-Theft Behavior via Multi-Source Data

WWW 2020 oral 1 INTRO 1.1 背景 1.1.1 窃电 窃电&#xff08;electricity theft&#xff09;指用户为了逃避电费而进行非法操作的一种行为 常用的反窃电方法可分为两类&#xff1a; 基于硬件驱动的反窃电方法 ​​​​​​​电表开盖检测、集中器检测。。。。 硬件驱动的…

MySQL之视图案例

目录 一.视图1.1 含义1.2 操作 二.案例三.思维导图 一.视图 1.1 含义 虚拟表&#xff0c;和普通表一样使用 1.2 操作 1.创建视图 create view 视图名 as 查询语句&#xff1b; 2.视图的修改 方式一&#xff1a; create or replace view 视图名 as 查询语句 方式二&#x…

图像分割-Grabcut法(C#)

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 本文的VB版本请访问&#xff1a;图像分割-Grabcut法-CSDN博客 GrabCut是一种基于图像分割的技术&#xff0c;它可以用于将图像中的…

Linux第15步_安装FTP客户端

安装完FTP服务器后&#xff0c;还需要安装FTP客户端&#xff0c;才可以实现Ubuntu系统和Windows系统进行文件互传。 1、在STM32MP157开发板A盘基础资料\03软件中&#xff0c;找到“FileZilla_3.51.0_win64-setup.exe”&#xff0c;双击它&#xff0c;就可以安装。 2、点击“I …

第5章-第8节-Java面向对象中的内部类

1、内部类&#xff1a;属于类的成员之一&#xff0c;类的内部又定义类&#xff0c;外层的class称为外部类&#xff0c;内部的class称为内部类。 设计了某个类&#xff0c;根据需求发现其内部又需要定义一个独立的内部结构&#xff0c;此时就考虑将其定义为内部类&#xff0c;内…

docker 相关常用命令---持续更新

注意&#xff0c;如果命令从文档复制过来在执行总是失败&#xff0c;然后又确定自己的命令没有错&#xff0c;那就自己手工敲命令&#xff0c;有的命令内容复制就是不行&#xff0c;手工敲就没问题了。 #查看容器站点运行日志 --tail500 查看500行&#xff0c; 后面的是容器…

uView Skeleton 骨架屏

骨架屏一般用于页面在请求远程数据尚未完成时&#xff0c;页面用灰色块预显示本来的页面结构&#xff0c;给用户更好的体验。 说明 由于VUE和NVUE的特性不同&#xff0c;组件动画在VUE上为由左到右形式&#xff0c;在NVUE上为明暗显隐的形式。 #平台差异说明 App&#xff0…

Fontfabric:一款字体与设计的完美结合

一、产品介绍 Fontfabric是一款由国际字体设计公司Fontfabric开发的字体设计软件。它提供了一整套完整的字体设计工具&#xff0c;让用户可以轻松地创建、设计和定制自己的字体。Fontfabric拥有丰富的字体库&#xff0c;包括各种风格和类型&#xff0c;能够满足用户在不同场景…

2023年山东省职业院校技能大赛高职组“软件测试”赛项-接口测试报告答案(含术语)

任务五 接口测试 目录 接口测试任务要求 接口测试报告 目的 术语定义 <

安全加密基础—基本概念、keytool、openssl

安全加密基础—基本概念、keytool、openssl 目录 前言 一、概念 明文通信 无密钥密文通信 对称加密 非对称加密 数字签名 消息摘要(MD5) CA数字证书(解决公钥分发的问题) HTTPS 相关文件扩展名 常用后缀名 普通的pem文件内容 二、keytool 2.1常用的命令如下 2…