当前位置: 首页 > news >正文

76.最小覆盖子串

给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。
注意:
对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。
如果 s 中存在这样的子串,我们保证它是唯一的答案。

class Solution {public String minWindow(String s, String t) {String minstr = "";Map<Character,Integer> need = new HashMap<>();Map<Character,Integer> win = new HashMap<>();for(char c : t.toCharArray()){need.put(c,need.getOrDefault(c,0)+1);}int left = 0, right = 0, tagl = 0;int size = 0, minLen = Integer.MAX_VALUE;while(right < s.length()){char cr = s.charAt(right);right++;if(need.containsKey(cr)){win.put(cr,win.getOrDefault(cr,0)+1);//这里使用==就会有bugif(win.get(cr).equals(need.get(cr))){size++;}}while(size == need.size()){//因为right已经+1了if(right - left < minLen){minLen = right - left;tagl = left;}char cl = s.charAt(left);left++;if(need.containsKey(cl)){//这里使用==就会有bugif(win.get(cl).equals(need.get(cl)))size--;win.put(cl,win.get(cl)-1);}}}return minLen == Integer.MAX_VALUE ? "":s.substring(tagl,tagl+minLen);}
}

相关文章:

  • 【达梦数据库】typeorm+node.js+达梦数据库返回自增列值
  • oracle SCHEDULER
  • Java中setLineWrap(true)和setWrapStyleWord(true)优化TextArea
  • DS18B20温度传感器完整使用介绍(配合51单片机)
  • Android11 动态权限申请
  • windows7虚拟机安装vmtools方法
  • FFmpeg源码:AV_RB32宏定义分析
  • 检测管理信息系统的设计与开发实现:软件功能设计
  • MyBatis系列六: 映射关系多对一
  • pip设置国内源:阿里云、腾讯云、清华大学源
  • leetcode144. 二叉树的前序遍历
  • python学习笔记-10
  • 新版本vue-cli打包之后没有css文件
  • 数据分析:解锁业务洞察与决策优化的关键
  • android之WindowManager悬浮框
  • [译]前端离线指南(上)
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【node学习】协程
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • gitlab-ci配置详解(一)
  • Js基础知识(一) - 变量
  • Kibana配置logstash,报表一体化
  • Markdown 语法简单说明
  • markdown编辑器简评
  • oschina
  • PAT A1120
  • React-redux的原理以及使用
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • - 概述 - 《设计模式(极简c++版)》
  • 前端工程化(Gulp、Webpack)-webpack
  • 收藏好这篇,别再只说“数据劫持”了
  • C# - 为值类型重定义相等性
  • mysql面试题分组并合并列
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #android不同版本废弃api,新api。
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (13):Silverlight 2 数据与通信之WebRequest
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (第27天)Oracle 数据泵转换分区表
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (四)Controller接口控制器详解(三)
  • (原創) 未来三学期想要修的课 (日記)
  • **PHP分步表单提交思路(分页表单提交)
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net 7 上传文件踩坑
  • .Net Core与存储过程(一)
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)