3. 无重复字符的最长子串

Ideas

这题有点KMP那味了。

首先定义三个变量:

  • left:-1,当前处理字符串长度的左索引的前一位
  • res:0,最长子串长度
  • idx:{},最长子串中每个字符出现的索引

然后遍历字符串,如果当前遍历到的字符串出现在当前子串中,并且上次出现的索引大于当前子串的左索引,那么就让当前子串的左索引置为其在子串中的位置,否则更新res。

Code

Python

class Solution:def lengthOfLongestSubstring(self, s: str) -> int:left, res, idx = -1, 0, {}  # idx 表示某字符出现的索引for i, ch in enumerate(s):if ch in idx and idx[ch] > left:  # 如果 ch 在字典中并且上次出现的索引大于当前长度的下标left = idx[ch]else:res = max(res, i - left)idx[ch] = ireturn res

LeetCode Algorithm 3. 无重复字符的最长子串相关推荐

  1. 刻意练习:LeetCode实战 -- Task16. 无重复字符的最长子串

    背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...

  2. 【Leetcode 3】无重复字符的最长子串

    题目描述 2020年8月25日更新 一次遍历 思路: (1)一次遍历,用list存放遍历的连续不重复的子串,当遍历到重复的字符时,用index()方法获得list当中重复字符a的索引,然后将list重 ...

  3. leetcode算法题--无重复字符的最长子串

    题目地址: https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ https://leetc ...

  4. LeetCode刷题——无重复字符的最长子串

    目录 一.题目描述 二.题解 三.源码 一.题目描述 二.题解 三.源码 class Solution(object):def lengthOfLongestSubstring(self, s):&q ...

  5. 【LeetCode】无重复字符的最长子串【滑动窗口法】

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

  6. LeetCode 3. 无重复字符的最长子串(滑动窗口+哈希)

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

  7. LeetCode题库整理【Java】—— 3 无重复字符的最长子串

    LeetCode题库整理[Java] ## 3 无重复字符的最长子串 题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" ...

  8. 【LeetCode】【HOT】3. 无重复字符的最长子串(哈希表)

    [LeetCode][HOT]3. 无重复字符的最长子串 文章目录 [LeetCode][HOT]3. 无重复字符的最长子串 package hot;import java.util.HashMap; ...

  9. [贪心|字符串] leetcode 3 无重复字符的最长子串

    [贪心|字符串] leetcode 3 无重复字符的最长子串 1.题目 题目链接 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度. 示例1: 输入: "abcabcbb" ...

最新文章

  1. 无法显示验证码去掉html,后台登陆验证码无法显示
  2. 前端测试 karma mocha should 都是什么鬼?
  3. springBoot 在线心理咨询管理系统
  4. 第十二届蓝桥杯JavaB组省赛H题 杨辉三角形
  5. ES6-11 Symbol、iterator、forOf、typeArray
  6. MySQL - cast()函数
  7. C语言137页答案,综合化学实验答案题库(137页)-原创力文档
  8. 音视频开发(9)--视频编解码的理论和实践
  9. 如何用R语言做词云图,以某部网络小说为例
  10. Chrome 87 发布,获多年来最大性能提升
  11. 混日子的老程序员感受结对编程的威力【工作效率狂提高】
  12. 4G与5G 无线技术细节对比
  13. 翻翻git之---实用工具类Lazy(绝对的好东西,走过路过别错过)
  14. SIP协议之术语定义
  15. 微信小程序开发--uniapp
  16. 男人:你是“橙皮男”还是“草莓男”?
  17. 用html写一个道歉的代码
  18. 解决Aria2 BT下载速度慢没速度的问题
  19. 【MATLAB】— xlsread和xlswrite函数
  20. 关于几种软件测试分类的方法

热门文章

  1. 16.实现多个具有相同方法的接口和父类与实现接口有相同方法
  2. BZOJ1146[CTSC2008]网络管理——出栈入栈序+树状数组套主席树
  3. 到你是你玩互联网还是互联网玩了你
  4. winfrom水晶报表的创建
  5. 基于八叉树快速分类的Shear-Warp交互式体绘制算法
  6. opensuse 42.2 mysql_【Linux】Grub模式硬盘安装openSUSE 42.2
  7. html5 打印api,HTML5的API(一)
  8. django手机访问_Django从入门到大作业:2-见网页
  9. Java黑皮书课后题第10章:10.4(MyPoint类)设计一个名为MyPoint的类,代表一个以x坐标和y坐标表示的点
  10. P2700 逐个击破