LeetCode 003:无重复字符的最长子串

每日一练2020/8/7(python)——给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度 子串(substirng):串中任意个连续字符组成的子序列称为该串的子串 如:"pwwkew"的无重复子串为:“pw” “wke” “kew” “p” "w"等 方法一:暴力破解 遍历并找出所有无重复的最长连续子串 缺点:时间复杂度、空间复杂度都很高 def lengthOfLongestSubstring(s): if not s: return 0 substirng = {} for 阅读详情

题目:

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

示例1:

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

示例2:

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

示例3:

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


上图已经能够很直观的展示了该如何去遍历了:

  • 遍历时记录每一个字符最后出现的位置。
  • 取当前字符最后出现的位置和Last的最大值,赋值给Last
  • 比较Last Max和i - Last的大小,如果i - Last更大则说明找到了新的最大子串,把i - Last赋值给Last Max。

具体实现代码如下:

public int solution(String s) {
    int [] temp = new int[256];
    int last = 0, result = 0;
    for(int i = 0; i < s.length(); i++){
        last = Math.max(last, temp[s.charAt(i)]);
        temp[s.charAt(i)] = i + 1;
        result =Math.max(result, i - last + 1);
    }
    return result;
}

更多LeetCode文章:
https://github.com/ybjx/Leetcode/

扫码关注:
头条号:  微信公众号:

无重复字符的最长子串(Python3解法) 题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例: 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的... 阅读详情

相关推荐

[力扣]无重复字符的最长子串:给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度[leetcode 003]

最长无重复子串问题的高效解法:采用滑动窗口与字典优化策略,通过左右指针动态维护无重复字符窗口,利用字典记录字符最新索引实现左指针快速跳转。该算法时间复杂度为O(n),空间复杂度O(min(m,n)),适用于处理最长5万字符的字符串,能有效应对各类边界情况如连续重复字符等。从暴力枚举到优化实现,展示了算法设计中"发现冗余→针对性优化"的核心思维路径。

githxks的博客 504

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

package com.igeek.Day03; /** * @Auther : igeek * @Date : 2019/09/21 14:25 * @Description : * @Modify By : DELL * @Version : */ public class LeetCode_3 { public static void main(String[] ar...

chenquan818的博客 455

从建模到调参:基于Simulink的两轮差速机器人轨迹跟踪PID控制全流程解析

本文详细解析了基于Simulink的两轮差速机器人轨迹跟踪PID控制全流程,涵盖运动学建模、仿真环境搭建、PID控制器设计与实现等关键环节。通过Simulink仿真和可视化调试技巧,帮助开发者掌握移动机器人运动控制的核心技术,提升轨迹跟踪精度与性能优化能力。

weixin_28717683的博客 244

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

题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 题目解析: 有一个字符串,长度不定, 要找出不重复字符串的长度,我们可以这么假设,先找到第一个下标,然后从后面拿到元素的下标对比,如果不等,就取到下一个元素的下标。如果相等,就取前一元素的下标。最后截取字符串的长度 计算。 python代码实现: def finstr(findstr:str): for i in range(len(findstr)): for j in range(len(findstr))

Python热爱者的博客 7919

分子动力学模拟学习1-采用AmberTools21的MCPB.py构建金属蛋白的top文件

分子动力学模拟学习1-采用AmberTools21的MCPB.py构建金属蛋白的top文件

weixin_45011386的博客 3826

告别QXDM:在Android Studio中调试与验证高通NV读写功能的完整流程

本文详细介绍了在Android Studio中调试与验证高通NV分区读写功能的完整流程,替代传统的QXDM工具。通过JNI接口层、HAL服务层和Diag通信层的架构设计,开发者可以在熟悉的IDE环境中高效完成NV操作,包括环境配置、错误处理和性能优化等关键实践。

weixin_27013291的博客 261

LeetCode 3*. 无重复字符的最长子串(Python)

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

如切如磋,如琢如磨 268

Flutter 中使用蓝牙插件报错,说没有权限怎么解决

2、在build.grale里面更改一下版本号,我修改的是targetSdkVersion这个版本号,需要根据你自己的版本进行更改,记得更改之后先flutter clean一下再run。搞了一晚上,没搞出来,第二天用同事手机测试发现他手机可以,我手机还是不行,才发现是Android版本问题,需要修改两处地方。废话不多说,咱先看报错信息。

zzj17637822814的博客 2289

LeetCode 003:无重复字符的最长子串

LeetCode

m0_64694079的博客 242

GD32的低功耗模式:睡眠、深度睡眠与待机模式

GD32F4xx提供三种主要低功耗模式,功耗逐级降低:睡眠模式 (Sleep Mode)关闭CPU时钟,保持外设运行任意中断/事件唤醒深度睡眠模式 (DeepSleep Mode)关闭CPU和大部分外设时钟需特定唤醒源(外部中断、RTC等)待机模式 (Standby Mode)最低功耗,仅备份域维持供电仅支持复位、RTC、WKUP引脚唤醒。

波风水门的博客 2277

ABAP ALV编辑后触发事件

1.FUNCTION ALV在it_events的参数中,写入对应的事件。2.OO ALV和FUNCTION ALV都可以,注册当前ALV的事件,对应的事件需要创建对象去实现。下面代码中,实现的是第一种,在it_events中写入事件。下面的代码是通过创建对象去实现ALV事件。

a86632678的博客 3852

leetcode算法每天一题003:无重复字符的最长子串(max函数,滑动窗口+set)

【代码】leetcode算法每天一题003:无重复字符的最长子串。

ResumeProject的博客 661

[SV]SystemVerilog学习笔记之struct & union

SystemVerilog学习笔记(四) 一、结构体(struct) 1.1、结构体(struct) 结构体声明:结构体默认是变量,也可以声明为线网 var struct{ //通过var进行结构体变量声明 logic [31:0] a, b; logic [ 7:0] opcode; } Instruction_Word_var; wire struct{ //结构体线网声明,定义为线网类型时,结构体的所有成员必须...

元直的博客 1万+

摆烂学习 LeetCode——JAVA

小白入门借鉴学习

qq_51517771的博客 230

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Leetcode 003. 无重复字符的最长子串 | 每日一题

给定一个字符串,请你找出其中不含有重复字符的 **最长子串** 的长度,因为无重复字符的最长子串是 "abc",所以其长度为 3。Leetcode解题

画漫画的程序员∙苏南 439

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LeetCode003——无重复字符的最长子串

我的LeetCode代码仓:https://github.com/617076674/LeetCode 原题链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/description/ 题目描述: 知识点:滑动窗口 思路一:暴力解法 用双重循环来求得所可能取得的所有的子串...

清风阁 925

【Leetcode】003无重复字符的最长子串

题目描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串的长度。示例1输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例2输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例3输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。

xiaodoudouer的博客 665

【LeetCode】 003-无重复字符的最长子串 C语言求解

leetcode-003-无重复字符的最长子串

AustinCyy的博客 1793

【力扣高频题】003.无重复字符的最长子串

前面的算法文章,更新了许多专题系列。滑动窗口、动态规划、加强堆、二叉树递归套路等。还没读过的小伙伴可以关注同名号,在主页中点击对应链接查看哦~接下来的一段时间,将持续「力扣高频题」系列文章,想刷力扣高频题的小伙伴也可以关注一波哦 ~!!关注回复「ACM紫书」获取 ACM 算法书籍 ~回复「算法导论」获取 算法导论第3版 ~在看 + 转发让你的小伙伴们一起来学算法吧!!

weixin_46879314的博客 976

【LeetCode】003——无重复字符的最长子串

题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子...

Daycym的博客 397

leetcode003无重复字符的最长子串-我自己的理解

leetcode无重复字符的最长子串-我自己的理解 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” ...

peony的博客 144

LeetCode 003. 无重复字符的最长子串 - 滑动窗口与哈希表详解

题目描述:给定一个字符串 s,请找出其中不含重复字符的最长子串的长度。子串需连续,且字符不可重复。原题链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters/难度等级:Medium相关标签:字符串、哈希表、滑动窗口、双指针。

m0_52114506的博客 1047

Leetcode003——无重复字符的最长子串

本文通过派对邀请的生动比喻,介绍了解决"无重复字符最长子串"问题的滑动窗口算法。算法使用左右指针作为派对保安,哈希集合记录已邀请客人:右指针逐个邀请新客人,若重复则左指针移除最早加入的客人,直到无重复。整个过程保持记录最大子串长度。该方法时间复杂度O(n),空间复杂度O(min(n,m)),适用于各种字符串场景。通过Java代码示例和"abcabcbb"的详细步骤解析,展示了算法的高效实现原理。

weixin_44385781的博客 838

LeetCode 003 无重复字符的最长子串

003 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的...

从零学起 157

【LeetCode003】无重复字符的最长子串

题目描述 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 (详见LeetCode)https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 题目分析 以“abcabcbb”为例,梳理手动得出答案的过程。 1.从第一个字母开始往后比较,如不重复则看下一个字母。 a→b...

fistomina的博客 226
上一篇: LeetCode 001:两数之和
下一篇: 动画演示LeetCode算法题:004-寻找两个有序数组的中位数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值