JAVA学习-练习试用Java实现“最小覆盖子串”
问题:
给定一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。
注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。
示例 1:
输入:s = "ADOBECODEBANC", t = "ABC"
输出:"BANC"
示例 2:
输入:s = "a", t = "a"
输出:"a"
提示:
1 <= s.length, t.length <= 105
s 和 t 由英文字母组成
以下程序实现了这一功能,请你填补空白处内容:
public class Min_Win_Sub {public String minWindow(String s, String t) {int[] ta = new int[128];int[] sa = new int[128];int min = Integer.MAX_VALUE;String minwin = "";for (int i = 0; i < t.length(); i++) {ta[t.charAt(i)]++;}int count = 0;int end = 0;int start = 0;while (end < s.length()) {if (ta[s.charAt(end)] != 0) {if (sa[s.charAt(end)] < ta[s.charAt(end)]) {count++;}sa[s.charAt(end)]++;}if (count == t.length()) {_________________;if (end - start + 1 < min) {minwin = s.substring(start, end + 1);min = end - start + 1;}}end++;}return minwin;}}
解答思路:
以下是填补空白处的代码:
while (sa[s.charAt(start)] > ta[s.charAt(start)]) {sa[s.charAt(start)]--;start++;
}
这段代码的作用是在找到一个涵盖 t 所有字符的子串后,通过从子串的开头开始,逐个减少字符的出现次数,来找到最小的覆盖子串。具体来说,它会从子串的开头开始,找到第一个出现次数大于 t 中对应字符出现次数的字符,然后将其出现次数减 1,并将起始位置向前移动一位。重复这个过程,直到找到最小的覆盖子串。
(文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)
相关文章:
JAVA学习-练习试用Java实现“最小覆盖子串”
问题: 给定一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。 示例 1&…...
关于axios同步获取数据的问题
axios同步获取数据 Axios介绍问题代码修改 总结 Axios介绍 Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 X…...
java-在ANTLR中,如何从java文件中提取类名和方法名0.1.8
java-在ANTLR中,如何从java文件中提取类名和方法名0.1.0 目标java源文件java的g4文件生成antlr代码最终代码调测结果阶段性总结 2024年9月12日11:16:01----0.1.8 目标 从一个java文件中提取出类名和方法名 java源文件 文件名是main.java,具体内容如下…...
十大护眼灯钢琴灯品牌是智商税吗?十大钢琴灯品牌排行榜
十大护眼灯钢琴灯品牌是智商税吗?不良的光线不仅会使得孩子在读写用眼时眼睛不舒服,还会引起视觉疲劳伤眼视力健康,这个时候要能有一台可靠的护眼灯钢琴灯,那真是再好不过了。但是市面上护眼灯钢琴灯的种类太多,盲目挑…...
搜维尔科技:CyberGlove将实时捕捉运动信号和触觉反馈,将其重新定位到人形机器人进行驱动
CyberGlove将实时捕捉运动信号和触觉反馈,然后将其重新定位到人形机器人上。 这款18个传感器(有18节点和22节点两个型号,22节点早期用于美国军事方面,支持无线通信、蓝牙、WiFi、射频)数据手套的每个手指上有两个弯曲…...
数据结构:堆的算法
目录 一堆的向上调整算法二堆的向下调整算法三堆的应用:堆排序四TOPK问题 一堆的向上调整算法 我们在堆中插入一个数据一般实在堆的最后插入然后可以一步一步与上层结点(父结点进行比较),继而进行交换,完成二叉树的结构࿰…...
python画图|3D直方图基础教程
前述已经完成了直方图和3D图的基本学习,链接如下: 直方图:python画图|水平直方图绘制-CSDN博客 3D图:python画图|水平直方图绘制-CSDN博客 现在我们尝试把二者结合,画3D直方图。 【1】官网教程 首先,依…...
C语言中的函数,实参,形参,递归
1:什么是函数 2:定义带形式参数的函数和带实际参数的函数 3:递归 --------------------------------------------------------------------------------------------------------------------------------- 1:在 C 语言中&…...
ICM20948 DMP代码详解(15)
接前一篇文章:ICM20948 DMP代码详解(14) 上一回开始对icm20948_sensor_setup函数中第3段代码即inv_icm20948_initialize函数进行解析。为了便于理解和回顾,再次贴出其源码,在EMD-Core\sources\Invn\Devices\Drivers\IC…...
NC 和为K的连续子数组
系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 给定一个无序…...
JS设计模式之装饰者模式:优雅的给对象增添“魔法”
引言 在前端开发中,我们经常会遇到需要在不修改已有代码的基础上给对象添加新的行为或功能的情况。而传统的继承方式并不适合这种需求,因为继承会导致类的数量急剧增加,且每一个子类都会固定地实现一种特定的功能扩展。 装饰者模式则提供了…...
准备好了吗?JAVA从业AI开发的学习路线详解
作为一个拥有扎实 Java 基础的人,想要涉足人工智能(AI)应用开发,你已经在编程能力方面打下了很好的基础。Java 是一种通用的、强类型的语言,非常适合于开发高性能的应用程序,尤其是在后端服务和大规模分布式…...
神经网络通俗理解学习笔记(1)
神经网络通俗理解学习笔记(1) 神经网络原理激活函数前向传播和反向传播多层感知机代码实现加载数据网络结构损失函数优化器训练测试保存 回归问题一元线性回归多元线性回归多项式回归 线性回归代码实现数据生成设置超参数初始化参数可视化Pytorch模型实现…...
有n个人,他们需要分配m元钱(m>n),每个人至少分到1元钱,且每个人分到的钱数必须是整数。请问有多少种分配方案?
分配方案 描述 有n个人,他们需要分配m元钱(m>n),每个人至少分到1元钱,且每个人分到的钱数必须是整数。请问有多少种分配方案? 输入 一行,两个整数,分别是人数n与钱数m,用一个空格隔开。 输出 一行&am…...
光耦——创新引擎 助推中国经济高质量发展
近年来,中国经济正处于转型升级的关键时期,高质量发展成为经济发展的重要目标。在这一伟大征程中,光耦作为一种关键性的电子元器件,正在发挥着重要的作用,助力中国经济迈向更加光明的未来。 光耦概念及工作原理 ▲光耦…...
Go 中 RPC 的使用教程
前言 RPC(Remote Procedure Call)是一种允许程序调用远程服务器上函数的方法,调用过程对于开发者来说像是调用本地函数一样方便。Go 语言自带了强大的 net/rpc 库,能够让开发者轻松实现基于 Go 的 RPC 服务。本文将介绍 Go 中 RP…...
挖耳勺可以伸进耳朵多深?安全可视挖耳勺推荐!
一般来说,挖耳勺不应该伸进耳朵太深,外耳道的长度大约在2.5厘米到3.5厘米之间,但不建议将挖耳勺伸进超过外耳道外1/3的深度,也就是大概1厘米左右较为安全。因为如果伸得太深,很容易损伤外耳道皮肤,引起疼痛…...
SuperMap GIS基础产品FAQ集锦(20240911)
一、SuperMap iObjects Java 问题1:【iObject Python】Objects Python产品有哪些能力特性和优势? 11.2.0 【解决办法】iObjects Python产品包含传统GIS功能(基于iObjects Java扩展的功能接口)和AI GIS功能模块。 其中传统GIS功能…...
从状态管理到性能优化:全面解析 Android Compose
文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compo…...
ChatGPT提示词优化大师使用指南
我希望你成为我的ChatGPT提示词优化大师。 您的目标是帮助我根据自己的需要制定尽可能最好的提示。 你提供的提示应该是站在我向ChatGPT发起请求的角度来写的。我的初始提示词如下:此处填入你的初始提示词 ChatGPT提示词生成器 我希望你充当提示词生成器。 比如&…...
Java毕业设计基于springboot+vue的智慧旅游系统
前言 SpringBoot智慧旅游系统通常采用B/S(Browser/Server)架构,这种架构使得用户可以通过任何支持Web浏览器的设备访问系统,无需安装额外的客户端软件,降低了用户的使用门槛。一、项目介绍 开发语言:Java …...
新手避坑指南:安捷伦/是德示波器探头选1MΩ还是50Ω?实测对比告诉你差别有多大
示波器探头阻抗选择实战手册:1MΩ与50Ω的黄金法则 第一次接触示波器时,我犯了个低级错误——用1MΩ探头直接测量射频电路,结果不仅波形畸变成锯齿状,还差点烧毁前端放大器。这个价值3000元的教训让我深刻认识到:探头…...
如何用Java处理地震波?信号滤波算法
常用的地震波信号滤波算法包括傅里叶转换(fft)与频域滤波器、fir滤波器、iir滤波器和中值滤波器一起。. 通过将时域信号转换为频域,java可以通过apache实现特定频率组件的操作 commons math库中的fastfouriertransformer类实现;2.…...
人工智能应用- 走向未来:02.人工智能研究方向
随着技术的发展,以深度神经网络为代表的人工智能技术在取得突破的同时,也逐渐暴露出一些基础性问题。这些问题促使科学家们思考人工智能的下一步发展。本节将从几个关键方面,探讨当前人工智能的重要研究方向。可解释性与可控性首先࿰…...
Flax过滤器系统终极指南:如何实现灵活的变量选择机制
Flax过滤器系统终极指南:如何实现灵活的变量选择机制 【免费下载链接】flax Flax is a neural network library for JAX that is designed for flexibility. 项目地址: https://gitcode.com/GitHub_Trending/fl/flax Flax NNX的过滤器系统是神经网络编程中的…...
LibreTranslate模型部署优化指南:从技术痛点到落地实践
LibreTranslate模型部署优化指南:从技术痛点到落地实践 【免费下载链接】LibreTranslate Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup. 项目地址: https://gitcode.com/GitHub_Trending/li/LibreTranslate …...
OpenClaw多通道控制:Qwen3-32B-Chat同时响应飞书与网页端指令
OpenClaw多通道控制:Qwen3-32B-Chat同时响应飞书与网页端指令 1. 为什么需要多通道控制? 上周三晚上11点,我正在用OpenClaw的网页控制台整理项目文档,突然飞书弹出同事的紧急需求:"能不能立刻帮我生成上季度销售…...
终极指南:如何使用Docker Stacks与Git Hooks实现自动化代码质量检查
终极指南:如何使用Docker Stacks与Git Hooks实现自动化代码质量检查 【免费下载链接】docker-stacks Ready-to-run Docker images containing Jupyter applications 项目地址: https://gitcode.com/gh_mirrors/do/docker-stacks Docker Stacks是一个提供现成…...
颠覆传统数学输入:MathLive交互式公式编辑器三步实现跨平台数学表达
颠覆传统数学输入:MathLive交互式公式编辑器三步实现跨平台数学表达 【免费下载链接】mathlive A web component for easy math input 项目地址: https://gitcode.com/gh_mirrors/ma/mathlive 在数字化教育与科研领域,数学公式的编辑始终是制约效…...
nli-distilroberta-base效果展示:Entailment/Contradiction/Neutral三类判别置信度热力图
nli-distilroberta-base效果展示:Entailment/Contradiction/Neutral三类判别置信度热力图 1. 项目概述 nli-distilroberta-base是基于DistilRoBERTa模型的自然语言推理(NLI)Web服务,专门用于分析两个句子之间的逻辑关系。这个轻量级模型能够快速准确地…...
