76. 最小覆盖子串(leetcode)

news/2024/12/21 22:35:45/文章来源:https://www.cnblogs.com/lxl-233/p/18448787

https://leetcode.cn/problems/minimum-window-substring/description/

难点在于解决字符出现次数的计算以及如何理解[涵盖],如何判断是否涵盖

class Solution {public String minWindow(String S, String t) {// 涵盖:s子串中每个字母出现的次数都大于等于t每个字母出现的次数String res="";int resLeft=-1;int resRight=S.length();char[] s=S.toCharArray();int[] cntS = new int[128]; // s 子串字母的出现次数int[] cntT = new int[128]; // t 中字母的出现次数for(char c:t.toCharArray())cntT[c]++;for(int i=0,j=0;i<s.length;i++){cntS[s[i]]++; // 新加入字符while(check(cntS,cntT)) // 判断是否涵盖{if(resRight-resLeft > i-j) // 更新答案{resRight=i;resLeft=j;}// 移动左指针缩小cntS[s[j]]--;j++;}}return resLeft < 0 ? "" : S.substring(resLeft,resRight+1);}// 传入s的子串,和t,判断是否涵盖boolean check(int[] cntS,int[] cntT){for(int i='A';i<='z';i++)if(cntS[i] < cntT[i]) return false;// for(int i='a';i<='z';i++)//     if(cntS[i] < cntT[i]) return false;return true;}   
}

 

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

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

相关文章

Docker系列-5种方案超详细讲解docker数据存储持久化(volume,bind mounts,NFS等)

@目录Docker的数据持久化是什么?1.数据卷(Data Volumes)使用Docker 创建数据卷创建数据卷创建一个容器,将数据卷挂载到容器中的 /data 目录。进入容器,查看数据卷内容停止并重新启动容器,数据卷中的数据仍然存在再次进入容器,检查文件是否存在使用 Docker Compose 创建数…

基于simulink的风轮机发电系统建模与仿真

1.课题概述使用simulink实现风轮机发电系统建模与仿真,包括风速模型(基本风+阵风+阶跃风+随机风组成),风力机模型,飞轮储能模块等。2.系统仿真结果 3.核心程序与模型 版本:MATLAB2022a风速模块:风力机模块 整体模型4.系统原理简介 4.1 风速模型风速模型在风力发电和其他…

2024-10-06 闲话

2024-10-06 闲话坐在电脑前 1 小时也什么都写不出来。 比如我现在住的地方(在一个房子里面)旁边有一个大冰块,因为这个大冰块在吸热所以我在家里感受到了无尽的寒冷。 于是我读了几本古圣先贤的书,合成了能烧来取暖的蜂窝煤。我又拿了根钻头把蜂窝煤点着了,尾气全部排到房…

报错集

报错集弹性云服务器ECS + 自动分配IP地址 + 配置安全组规则 + 配置并创建桶1.另外一个冲突的操作当前正作用在这个资源上,请等待一段时间后重试。 A conflicting conditional operation is currently in progress against this resource.Please try again 解决方案:桶的名称重…

云锵投资 2024 年 9 月简报

季报摘要行情:双重底结束,牛市启动;未来:长线看多; 期权策略:研发成功。节后正式上线,是未来的主要现金流策略; 微盘策略:非主流策略,三月连涨,未来长持; 本季度量化基金策略业绩:15.89%,优,全国排名:1858/11684;平均 Beta:1.00; 本季度量化股票策略业绩:3…

激活 Ultra Mobile Paygo

淘宝买一张 Ultra Mobile Paygo 电话卡(也叫做美国紫卡)(可选)在 NumberBarn 购买一个手机号。Plan 记得选 Port Away。打开 paygo.ultra.me/activate,填入卡面上的激活码,然后继续。填写相关信息。如果购买了手机号,选择 Transfer an Existing Number。未完待续

OJ在线判题系统项目

我的OJ在线判题系统介绍在线代码测评系统 开源地址 https://gitee.com/xj-oj/oj-project/tree/master 开发环境Java版本:Jdk 17 数据库:MySQL 8.0、Redis 6.2.6 开发工具 :IntelliJ IDEA、Maven 3.8.6采用技术Spring Boot、MyBatis-Plus、redis vue3、Axios、Element Plus部…

Trie

835. Trie字符串统计 模板题: 维护一个字符串集合,支持两种操作:I x 向集合中插入一个字符串 x; Q x 询问一个字符串在集合中出现了多少次。共有 N 个操作,所有输入的字符串总长度不超过 10^5,字符串仅包含小写英文字母。 输入格式 第一行包含整数 N,表示操作数。 接下来…

#2024-2025-1学号20241309《计算机基础与程序设计》第二周学习总结

作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第二周作业这个作业的目标作业正文 2024-2025-1学号20241309《计算机基础与程序设计》第二周学习总结教材学习内容总结 《计算机科学概论》第一章 1.计算系统…

Ubuntu20.04安装LabelImg 以及出现(ModuleNotFoundError: No module named libs.resources)错误

安装 Ubuntu系统安装labelImg: sudo apt install pyqt5-dev-tools接下来,通过 GitHub 下载 LabelImg: git clone https://github.com/tzutalin/labelImg.git cd labelimg-master cd requirements/ sudo pip3 install -r requirements-linux-python3.txt -i https://pypi.tun…

shctf 有感

当我打ezapk的时候 见到了这个代码我看的出这是先进行key异或加密后再转base64和目标对比(其实我漏了一个要先转UTF-8,但是我只会用C语言写base64解码,不会UTF-8解码),百思不得其解怎么写shellcode,听了某大跌建议,直接咨询AI,然后被喂了个python代码,ctrlc+ctrlcv就解…

三千字长文:我知道的输入法技巧都在这了

这些技巧能让你打字更快、更好。这些技巧能让你打字更快、更好。 ‍ 官方设置 目前市面上有很多输入法软件,其中很多功能都是共有的,因为都是基础功能。因此,当选择了一款输入法好,可以先打开设置页面,好好地了解有什么功能。 此外,还可以看输入法官网文档,例如搜狗输入…