java无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例 2:
输入: s = “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例 3:
输入: s = “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。
提示:
0 <= s.length <= 5 * 104
s 由英文字母、数字、符号和空格组成
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {public int lengthOfLongestSubstring(String s) {Set<Character> occ = new HashSet<>();int n = s.length();int l = 0, r = -1;//左右指针int max = 0;for (int i = 0; i < n; i++) {if(i != 0) {occ.remove(s.charAt(i - 1));//移除哈希表的第i - 1个字符}//当右指针没有移动到s的边界,或者没有出现重复的字符时r++while(r + 1 < n && !occ.contains(s.charAt(r + 1))) {occ.add(s.charAt(r + 1));r++;}max = Math.max(max, r - i + 1);}return max;}
}

Java中Set的contains()方法 可以·判断哈希表中是否有重复的字符
相关文章:
java无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “…...
测试用例设计工作中的应用
1. 等价类划分 常见的软件测试面试题划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为假设干等价类,在每一个等价类中取一…...
leetcode 困难 —— 数字 1 的个数(简单逻辑题)
(害,做题是真的慢,这面试给我这题我估计就傻了) 题目: 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。 题解: 首先看看整数范围 0 < n < 10^9 不能遍历࿰…...
关于JSON
<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title></title> </head> <body> <script> /* 1、JSON的英文全称:Java…...
Apifox-接口调用、自动化测试工具
Apifox简介 Apifox 的定位是Postman Swagger Mock JMeter,具有API文档管理、API调试、API Mock、API 自动化测试等功能。可以通过一种工具解决之前使用多种工具的数据同步问题。高效、及时、准确! 安装 Apifox的安装非常方便,直接下载安…...
Vue一个项目兼容每个省份的个性化需求
开发环境及打包指令 后拼上省份区划"serve:henan": "yarn && vue-cli-service serve -o --encryptSM2 --zone41","serve:hunan": "yarn && vue-cli-service serve -o --encryptSM2 --zone43","serve:guizhou&quo…...
npm install报错 npm ERR! 的解决办法
以下是四种常见的npm ERR及解决方式错误一、npm ERR! A complete log of this run can be found in:npm ERR!C:\Users\nanyi\AppData\Roaming\npm-cache_logs\2021-09-17T08_58_23_413Z-debug.l查看错误日志,错误日志就在上面展示的C:\Users…这里如果发现错误日志里…...
echarts修改饼图,环形图的圆环宽度,大小
echarts修改环形图的圆环宽度,大小 环形图圆环的大小需要通过series-pie. radius属性来修改 radius 饼图的半径。 Array.<number|string>:数组的第一项是内半径,第二项是外半径。每一项遵从上述 number string 的描述。 把数组的第…...
小白系列Vite-Vue3-TypeScript:010-封装svg
上一篇我们介绍了ViteVue3TypeScript项目中mockjs的安装和配置i。本篇我们来介绍封装SVG图标组件。svg特征Preloading所有图标都是在项目运行时生成的,只需要操作一次dom即可。高性能内置缓存,仅在文件被修改时才会重新生成。安装插件vite-plugin-svg-ic…...
卷严重、难度高、激励少,如何适应空投市场新变化
自从空投交互从2020年开始之后,不少人都开始加入到空投交互的行列中,一些项目也因为“格局”的因素,在项目正式上线前都会给早期参与者空投代币,以此吸引大家的关注。但是在越来越多的人加入到撸空投行列之中后,现在整…...
基于Java与JSP的文件上传和下载
概念 当用户在前端页面点击文件上传后,用户上传的文件数据提交给服务器端,实现保存。 文件上传步骤 提交方式: 提供form表单,method必须是post。因为post请求无数据限制。 <form method"post"></form>…...
Gromacs中的g_mmpbsa计算带电底物与蛋白的结合能不准确
g_mmpbsa计算带电底物与蛋白的结合能总是不准确 TOC 在做的两个项目中,利用g_mmpbsa计算带电底物与蛋白的结合能结果非常不可靠,底物带两个硫酸根离子,g_mmpbsa在计算带电的底物与酶的结合能时总是不准确,因此后续若底物带电&…...
【mmrotate】旋转目标检测之训练DOTA数据集
every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 mmrotate训练DOTA数据集记录 1. 正文 1.1 数据准备 数据介绍部分,参考DOTA数据介绍,官方提供了裁剪工具development kit。这里…...
图基本概念
图:顶点和边的集合。无向图:每条边都是无方向的有向图:每条边都是有方向的完全图:任意两个点都有一条边相连稀疏图:有很少边或弧的图稠密图:有较多边或弧的图网:边/弧带权的图邻接:有…...
机器学习基础
一、基本概念 1 学习的概念 1975年图灵奖获得者、1978年诺贝尔经济学奖获得者、著名学者赫伯特.西蒙 (Herbert Simon) 曾下过一个定义: 如果一个系统,能够通过执行某个过程,就此改进了它的性能,那么这个过程就是学习.由此可看出,…...
FreeRTOS-Tickless低功耗模式 | FreeRTOS十四
目录 说明: 一、低功耗模式简介 1.1、STM32低功耗模式 二、Tickless模式 2.1、Tickless模式如何功耗 2.2、Tickless模式设计思想 2.3、为了降低功耗,又不影响系统运行,怎么能做到呢? 三、Tickless模式修改配置 3.1、配置…...
实现了统一消息中心的微服务基础框架 JVS,快点赞收藏
一、开源项目简介基于JVS(基于spring cloud封装)的基础开源框架,实现了基于多对多租户能力的管理系统。二、基础框架实现功能支持数据管理支持分布式定时任务支持分布式日志采集支持系统监控支持动态配置中心支持模板消息支持链路跟踪支持邮件…...
VMware 安装 OpenWrt 旁路由并配置 PassWall
1、准备 OpenWrt 镜像包 我已经转好了 vmdk 格式的,更多的可以去恩山论坛下载 OpenWrtvmdk格式-虚拟化文档类资源-CSDN下载 也可以在这个平台在线定制 OpenWrt固件下载与在线定制编译 2、网络选择 NAT 模式 3、创建虚拟机,选择自定义方式 4、一直下…...
R语言GD包地理探测器分析时报错、得不到结果等情况的解决方案
本文介绍在利用R语言的GD包,实现自变量最优离散化方法选取与执行、地理探测器(Geodetector)操作时,出现各类报错信息、长时间得不到结果等情况的解决方案。 在之前的文章R语言GD包基于栅格图像实现地理探测器与连续参数的自动离散…...
嵌入式开发:你需要知道的5种简单
传达嵌入式软件体系结构设计意图通常伴随着基于嵌入式开发人员经验的假设。你可以从资源受限的基于微控制器的系统的角度来看架构设计。如何设计架构将取决于系统的嵌入式软件分类。有许多不同的方法可以对嵌入式软件进行分类。我发现有五种简单的嵌入式软件分类可以帮助我调整…...
跨平台启动盘制作:Linux环境下Windows安装介质创建全攻略
跨平台启动盘制作:Linux环境下Windows安装介质创建全攻略 【免费下载链接】windows2usb Windows 7/8/8.1/10/11 ISO to Flash Drive burning utility for Linux (MBR/GPT, BIOS/UEFI, FAT32/NTFS) 项目地址: https://gitcode.com/gh_mirrors/wi/windows2usb …...
Bromite广告拦截完全指南:自定义过滤器与自动更新设置终极教程
Bromite广告拦截完全指南:自定义过滤器与自动更新设置终极教程 【免费下载链接】bromite Bromite is a Chromium fork with ad blocking and privacy enhancements; take back your browser! 项目地址: https://gitcode.com/gh_mirrors/br/bromite Bromite是…...
拜尔模板(Bayer Pattern)在数字图像处理中的核心作用与优化策略
1. 拜尔模板的前世今生:从胶片时代到数字革命 我第一次拆解数码相机传感器时,发现那些排列整齐的彩色小点就像精心设计的马赛克艺术品。这就是拜尔模板的魔力——用最经济的方案解决色彩捕捉的世纪难题。1976年柯达科学家Bryce Bayer提出这个方案时&…...
LingBot-Depth-ViTL14效果展示:室内走廊、办公桌、楼梯等典型场景深度估计作品集
LingBot-Depth-ViTL14效果展示:室内走廊、办公桌、楼梯等典型场景深度估计作品集 1. 引言:当AI学会“看”深度 想象一下,你给AI看一张普通的室内照片,它不仅能认出桌子、椅子、走廊,还能立刻告诉你:桌子离…...
VSCode配置clangd踩坑指南:从安装到跳转全流程(附常见问题解决)
VSCode配置clangd实战指南:从零搭建高效C/C开发环境 作为一名长期与C/C打交道的开发者,我深知代码导航和智能提示对开发效率的影响。传统C/C插件在大型项目中的表现往往不尽如人意,而clangd作为LLVM项目的一部分,凭借其精准的代码…...
3大核心突破:M5Stack-Core-S3让AI语音助手开发效率提升10倍
3大核心突破:M5Stack-Core-S3让AI语音助手开发效率提升10倍 【免费下载链接】xiaozhi-esp32 Build your own AI friend 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 如何用模块化架构解决嵌入式开发的3大痛点 嵌入式开发常常陷入&quo…...
OpenClaw 2026.3.23:安全、插件、生态三重升级,AI助手进入新纪元
OpenClaw 2026.3.23:安全、插件、生态三重升级,AI助手进入新纪元> 3月23日,OpenClaw发布了2026.3.23版本,这次更新不仅是功能迭代,更是架构进化的里程碑。从安全加固到插件生态重构,OpenClaw正在从"…...
DeerFlow部署教程:离线环境适配方案与本地Tavily替代搜索集成
DeerFlow部署教程:离线环境适配方案与本地Tavily替代搜索集成 本文介绍如何在离线环境中部署DeerFlow研究助手,并提供本地搜索替代方案,解决无法使用Tavily等在线搜索服务的问题。 1. 认识DeerFlow:您的个人深度研究助理 DeerFlo…...
C/C++ snprintf 函数详解
C/C snprintf 函数详解 snprintf 在 C99 中标准化,在固定大小的字符数组中做带长度上限的格式化写入,避免 sprintf 因不检查边界导致的缓冲区溢出。下文说明其原型、返回值语义、与相关 API 的差异及常见用法。 目录 函数原型与参数返回值与截断判定相…...
PyTorch 2.8镜像入门必看:RTX 4090D显存24G下8bit量化加载Llama3-70B方法
PyTorch 2.8镜像入门必看:RTX 4090D显存24G下8bit量化加载Llama3-70B方法 1. 环境准备与快速验证 在开始之前,让我们先确认你的环境已经准备就绪。这个PyTorch 2.8镜像已经针对RTX 4090D显卡进行了深度优化,预装了所有必要的组件。 1.1 环…...
