寻找最长不重复子串

Longest Substring Without Repeating Characters

Given a string, find the length of the longest substring without repeating characters.

Examples:

Given "abcabcbb", the answer is "abc", which the length is 3.

Given "bbbbb", the answer is "b", with the length of 1.

Given "pwwkew", the answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequence and not a substring.

思路(时间复杂度为O(n))

遍历字符串,过程中将出现过的字符存入字典,key为字符,value为字符下标

用maxLength保存遍历过程中找到的最大不重复子串的长度

用start保存最长子串的开始下标

如果字符已经出现在字典中,更新start的值

如果字符不在字典中,更新maxLength的值

return maxLength

代码

class Solution(object):

def lengthOfLongestSubstring(self, s):

"""

:type s: str

:rtype: int

"""

start = maxLength = 0

usedChar = {}

for i in range(len(s)):

if s[i] in usedChar and start <= usedChar[s[i]]:

start = usedChar[s[i]] + 1

else:

maxLength = max(maxLength, i - start + 1)

usedChar[s[i]] = i

return maxLength

本题以及其它leetcode题目代码github地址: github地址

最长不重复子串python_寻找最长不重复子串相关推荐

  1. 寻找一个字符串的重复子串 后缀数组

    什么是后缀数组 令字符串 S=S[1]S[2]...S[n]S=S[1]S[2]...S[n]{\displaystyle S=S[1]S[2]...S[n]} , S[i,j]S[i,j]{\dis ...

  2. 算法设计 - 寻找一个字符串的重复子串LRS

    虽是读书笔记,但是如转载请注明出处 http://segmentfault.com/blog/exploring/ .. 拒绝伸手复制党 问题描述: 首先这是一个单字符串问题.子字符串 R 在字符串 ...

  3. 怎么判断一个字符串的最长回文子串是否在头尾_每日一道算法题,让你的头脑更活跃(寻找最长回文子串)...

    前言 最近准备把算法慢慢的捡起来,所以准备日更一道算法题目,难度自然是由简入难,所以同学们可以每天都来看看小编的更新. 日更时间定在每晚20:00,希望大家多多关注啦. 昨天就欠更了,简直就是打脸.过 ...

  4. 最大子串和 python_5. 最长回文子串(Python)

    题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 示例 1: 输入: "babad" 输出: "bab" 注 ...

  5. 算法-寻找数组中的重复值,四种解法

    算法-寻找数组中的重复值 寻找数组中的重复值 寻找数组中的重复值 题目来源于:Leetcode-287.本题归类到简单我无法理解-要满足四个条件需要用很特定的解法,面试中要是用到的话很可能是在给自己挖 ...

  6. LeetCode高频题76. 最小覆盖子串:欠账还债还款问题,子串考虑i开头的情况所有答案更新一波

    LeetCode高频题76. 最小覆盖子串:欠账还债还款问题,子串考虑i开头的情况所有答案更新一波 提示:本题是系列LeetCode的150道高频题,你未来遇到的互联网大厂的笔试和面试考题,基本都是从 ...

  7. mysql选出重复的字段_mysql查询表里的重复数据方法:

    INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),('qmf2', 'qmf11') delete from hk_test  ...

  8. java怎么防止表单重复提交_如何防止表单重复提交

    在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...

  9. mysql查询表里面重复的数据_mysql查询表里的重复数据方法

    这篇文章主要介绍了mysql查询表里的重复数据方法,需要的朋友可以参考下 INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),( ...

最新文章

  1. OpenCV+3计算机视觉++Python语言实现+第二版pdf
  2. 大学计算机课程第六章答案,大学计算机网络课程第六章.ppt
  3. visio业务流程图教学_用visio软件怎样画数据流程图和业务流程图?
  4. R语言-基于集波士顿住房
  5. matlab画柱状图并填充
  6. ef常见面试题_C#基本面试题
  7. ArcGIS网络分析扩展模块
  8. 图灵机器人官网 java_图灵机器人-Java/Android
  9. kali-2019.4中文乱码问题的解决
  10. 利用python实现对豆瓣排名电影的信息获取
  11. 一篇2006年的文章和一部2015年的名著
  12. 蔡康永:我要的三国就是威力无双。0氪玩家玩了两个礼拜后
  13. 敏捷实践之回顾会议Retro
  14. //菱形,内藏十字架
  15. Coco2d-x 3.x : Cocos Studio 制作的UI无法正确显示,出现绿色或白色底
  16. win10下以管理员身份修改hosts文件
  17. 史上最长最全!围绕故障管理谈SRE体系建设
  18. 命令行 笔记本键盘禁用_如何在 Ubuntu 20.04 上禁用坞站(dock) | Linux 中国
  19. 游戏打包图片,让texturepacker免费版当收费版使用,不用破解,拒绝破解版
  20. 如何防止ip被ban

热门文章

  1. 炸弹人问题(简单版)
  2. God of War:Chains of Olympus download! 下载战神奥林匹斯之链!(ISO torrent)
  3. Vue3时间轴(Timeline)
  4. 采用灰度分组统计方法实现图像中值滤波
  5. [Java安全]—动态加载字节码文件
  6. 力扣-374题 猜数字大小(C++)- 二分
  7. IAR 的一个警告546
  8. 无人机倾斜摄影测量测绘应用
  9. python怎么更新setuptools_Python包管理工具setuptools详解
  10. Linux中安装亚马逊OpenJDK11