LeetCode 3. 无重复字符的最长子串 Java实现

LeetCode-3 无重复字符的最长子串(Java实现) LeetCode-3 无重复字符的最长子串(Java实现) 题目如下: 我的解决思路 定义一个遍历max来保存最大的子串长度,定义一个currentStr来保存当前的子串。以字符串"abcabcbb"为例: 取第一个字符a。a不在currentStr中,就将a添加到currentStr中,当前currentStr = “a”; max = 1; 取第二个字符b。b不在currentStr中,就将b添加到currentStr中,当前currentStr = “ab”;max = 2; 取第三个字符c。c不 阅读详情

题目


给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

示例 1:

输入: "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

思路


这里要找出无重复字符的最长子串,首先定义一个空的字符串,通过遍历所给字符串,如果当前字符与自己定义的字符串有相同字符时,将自己定义的字符串截取到相同字符的下一位,比如当前自己定义的字符串是“bvasw”,而当前字符是a,就将自己顶一个字符串截为“sw”,然后再加上字符a,继续遍历下一位,如果没有相同字符,就直接加上当前字符,继续遍历下去,比较当前自己定义的字符串的长度与之前计数的大小,取大的赋值给count,最后返回count。

代码


class Solution {
    public int lengthOfLongestSubstring(String s) {
        int count=0;
        String str="";
        for(int i=0;i<s.length();i++){
            int judge=judge(str,s.charAt(i));
            str=str.substring(judge);
            str+=s.charAt(i);
            if(str.length()>count)
                count=str.length();
        }
        return count;
    }
    public int judge(String str,char c){
        for(int i=0;i<str.length();i++){
            if(str.charAt(i)==c)
                return i+1;
        }
        return 0;
    }
}

 

LeetCode题目:3.无重复字符的最长子串 两种解题思路及Java实现 题目: 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 思路:题目要求找出的是长度,首先将字符串转为字符数组,然后定义两个指针,通过右指针遍历数组,右指针每后移一位,就判断它当前指向的元素和它与左指针中间范围的字符有没有重复的,如果存在,这时字串长度为right-left,让左指针指向那个重复元素的后一个元素,继续后移右指针,右指针移动的时候,一直记录最长子串长度,如果碰到前面有重复元素,子串长度为right-left+1。 static int lengthOfLongestSubstrin 阅读详情

相关推荐

海康威视GigE工业相机的python调用demo

默认路径安装完成后,在路径C:\Program Files (x86)\MVS\Development\Samples\Python\BasicDemo下的BasicDemo.py中,海康威视官方提供了基本的调用方法,本文也是基于这个修改的。BasicDemo.py提供了通过枚举选择相机的方法,在官方的另一个DEMO:ConnectSpecCamera.py中提供了另一种不通过枚举,直接访问特定IP相机的方法,也可以参考。另外,如果每台相机都定义了唯一的用户定义名,也可以通过用户定义名来区分相机。

xulibo5828的博客 2113

无重复字符的最长子串(Java 详解)

这个算法的关键在于通过滑动窗口的方式,动态地调整窗口的大小,以保持窗口内的字符都不重复,并且在遍历过程中不断更新最大子串的长度。这样可以在一次遍历中解决问题,而不需要额外的循环来检查所有可能的子串。时间复杂度为O(n),其中n是字符串的长度。解决这个问题的关键在于使用滑动窗口和哈希集来维护一个当前不含重复字符的子串。,请你找出其中不含有重复字符的。

weixin_48751586的博客 2105

华为2288H-V5服务器做raid的详细步骤

操作步骤 服务器启动界面 按del键进入设置输入密码,2288H-v5默认密码是Admin@9000 移动光标选择device manager 驱动管理选择configurationutility 配置管理 选择main menu 主菜单 选择第一个 configuration management 配置管理 选择create virtual driver 创建虚拟驱动选择select RAID level 选择RAID等级选择level-5 选择select drivers 选择驱......

weixin_46041124的博客 1万+

无重复字符的最长子串 Java

无重复字符的最长子串(java解法)

zhanglei1147的博客 1921

手把手教你使用YOLOv11模型,训练自己数据集,百分百成功(无废话)

YOLOV11百分百成功训练自己的数据集并进行图像、视频流脚本预测

chenhenGzzz的博客 1954

导出库的版本_Windows下PaddleOCR在C++中的推理部署(CPU版本)CMake + VS2017

PaddleOCR是一个与OCR相关的开源项目,不仅支持超轻量级中文OCR预测模型,总模型仅8.6M(单模型支持中英文数字组合识别、竖排文本识别、长文本识别,其中检测模型DB(4.1M)+识别模型CRNN(4.5M)),而且提供多种文本检测训练算法(EAST、DB)和多种文本识别训练算法(Rosetta、CRNN、STAR-Net、RARE)。本文将教大家通过PaddleOCR(CPU版...

weixin_31304817的博客 1917

无重复字符的最长字串(java版)

无重复字符的最长字串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 解法1:暴力破解 遍历所有的子串,找出最长的 解法2:滑动窗口 简单思路: 第一轮:[a] // 无重复字串,记录最大长度 1 第二轮:[a, b] // 无重复字串,记录最大长度 2 第三轮:[a, b, c] // 无重复字串,记录最大长度 3 第四轮:

Monster丶的博客 1775

AIGC实战:用ComfyUI和Lora微调打造专属原神角色(含完整工作流)

本文详细介绍了如何利用ComfyUI和Lora微调技术打造专属原神风格角色,涵盖从环境配置、数据集准备到工作流构建和Lora训练的全过程。通过模块化节点设计和高级控制技术,创作者可实现高度个性化的AIGC艺术创作,提升二次元角色生成的效率与质量。

weixin_29185199的博客 353

代码挑战:最长的无重复字符子串 - Java 版

此挑战要求您找到给定字符串中不重复字符的最长子字符串。输入和输出示例。

我的博客,不一样的自我表达 571

QuecOpen RTOS学习笔记

对计算机响应时间有要求的系统,通常称为临界系统或应用。为了满足临界系统或应用对计算机响应 时间的要求,人们开发了实时操作系统(Real Time Operation System)。 实时操作系统指所有任务均在规定时间内完成的操作系统,同时任务完成必须满足时序可预测性。需 要注意的是,实时操作系统的本质是其反应具有时序可预测性。得益于此,实时操作系统通常反应非常快。 实时操作系统的内核对象一般包括任务、信号量、互斥锁、消息队列、定时器、事件通知和软件看门 狗等。

zxm8513优快云博客 2030

Halcon学习之一维测量(3)

带定位器的测量。首先看一下“定位”是什么意思?回答:比如我们测量一个芯片,这时候我们设置一个测量矩形,来沿着测量目标进行测量。但是下一张当芯片的位置发生变化时,测量矩形的位置就不对了,就不是沿着测量目标了。这样就不对了!芯片在转,测量矩形也要跟着一起转才行。这个时候就需要“定位”来起作用了!定位之后得到这个芯片的旋转角度之后,测量矩形可以跟着这个角度转。这就是“定位”+“测量”,这是我们工业视觉常用的一个手法,在Halcon里面也是有例子展现的。

deep_love1314的博客 788

java无重复字符的最长子串

链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。

papillonlong的博客 2288

NVIDIA Isaac Lab 入门教程(一)

Isaac Lab 是一个用于机器人学习的统一模块化框架,旨在简化机器人研究中的常见工作流程(如 RL、从演示中学习和运动规划)。它建立在英伟达 Isaac Sim 的基础上,利用最新的仿真功能实现逼真的场景和快速高效的仿真。该框架的核心目标是Isaac Lab 的主要功能包括:由 PhysX 提供的快速准确的物理模拟、用于矢量化渲染的平铺渲染 API、用于提高鲁棒性和适应性的域随机化,以及对在云中运行的支持。有关该框架的更多信息,请参阅论文[MYY+23]。

机器人控制与仿真应用 8218

【LeetCode 力扣】3.无重复字符的最长子串 Java实现 滑动窗口

【LeetCode 力扣】3.无重复字符的最长子串 Java实现 滑动窗口

RanLZ的博客 674

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

leetcode hot100【LeetCode 3. 无重复字符的最长子串】java实现

LeetCode 3. 无重复字符的最长子串-滑动窗口实现

DataCrafter的博客 545

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

千问 LeetCode 3.无重复字符的最长子串 Java实现

三种解法时间复杂度都是 O(n),但解法三在实际运行中常数更小,因为遇到重复时左指针可以一步到位,不需要逐步移动。这里 left 初始为 -1,窗口长度为 right - left,因为 left 指向的是窗口左边界的前一个位置。用数组记录每个字符最后出现的下标,遇到重复时直接将左指针跳到重复字符上次出现位置的下一位,避免了逐步收缩。这道题是滑动窗口的经典入门题,核心思路是维护一个无重复字符的窗口,右指针不断扩张,遇到重复就从左边收缩。// 如果当前字符重复,从左边收缩窗口直到不重复。

m0_37843156的博客 157

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

leetcode第3题,无重复字符的最长子串,java实现

题目链接 运行结果 执行结果:通过 执行用时 :9 ms, 在所有 java 提交中击败了80.56%的用户 内存消耗 :37.4 MB, 在所有 java 提交中击败了92.70%的用户 代码实现 class Solution { public int lengthOfLongestSubstring(String s) { int res = 0; /...

qq_29168809的博客 354

leetcode3 无重复字符的最长子串 java实现

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s = “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: s = “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列

weixin_44026997的博客 335

leetcode3——无重复字符的最长子串——java实现

题目要求: 分析: 由于不能重复,所以首先就考虑到利用HashSet,HashSet底层利用的也是HashMap,但是HashSet中的内容不能重复。 由于返回的值是子串的长度,所以需要定义一个count来计数。 1.根据滑动窗口的思想,定义start和end两个变量,它们在最开始时均指向字符串s的第一个字符; 2.定义一个HashSet,用来存放符合题目条件的子串; 3.对整个字符串s的每个字...

阿花的IT历程 333

[LeetCode-java实现]3. 无重复字符的最长子串

给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。 示例1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: s = "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长...

车车的博客 234

leetcode 3.无重复字符的最长子串(Java实现)

给定一个字符串,找出不含有重复字符的最长子串的长度。 示例1: 输入: "abcabcbb" 输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 无重复字符的最长子串是 "b",其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 无重复字符的最长子串是"wke",其长度为

Pmithie的博客 463

LeetCode3. 无重复字符的最长子串(java实现)

定义左右指针,让右指针进行滑动,滑动之前先对set集合进行判断,看是否出现过,如果没有出现再往set集合里放。如果出现过了那么需要先进行删除原来出现过的也就是左指针的位置,再往set集合中放。无重复的最长子串,题目有可能有些小伙伴没读太懂,其实就是找到不重复的最长子串,比如eg3,pwwk,那么w出现了两次就不符合要求。需要注意的是对set集合已经包含了元素的处理,需要用一个while循环一直删除重复的元素,然后跳出循环后需要对右指针的元素添加。如果说没有看太懂的话推荐下b站的博主:[

Kirihara_Yukiho的博客 435

leetcode刷题笔记-3. 无重复字符的最长子串(java实现)

leetcode-3. 无重复字符的最长子串(java实现)

成钰的博客 460

【贪心算法-LeetCode3:无重复字符的最长子串(Java实现)】

贪心策略解决无重复字符最长子串问题

NorthSmile的博客 1468

LeetCode-3-无重复字符的最长子串(JAVA实现)

给定一个字符串s,请你找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是"abc",所以其长度为 3。1因为无重复字符的最长子串是"b",所以其长度为 1。3因为无重复字符的最长子串是"wke",所以其长度为 3。请注意,你的答案必须是的长度,"pwke"是一个子序列,不是子串。

bbbbb___的博客 524

[LeetCode] 3. 无重复字符的最长子串(java实现)双指针+哈希表

[LeetCode] 3. 无重复字符的最长子串(java实现)1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结 1. 题目 2. 读题(需要重点注意的东西) 思路: 3. 解法 ---------------------------------------------------解法---------------------------------------------------: 4. 可能有帮助的前置习题 5. 所

cloud的博客 318
上一篇: LeetCode 42.接雨水 Java实现
下一篇: Vue学习笔记(五)组件基础
前端小黑
博客等级 码龄9年 148粉丝 222原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值