寻找最长不重复子串

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. 数据库内核月报 - 2017年12月
  2. monkey如何获取app包名
  3. RabbitMQ指南(上)
  4. 学生计算机基础知识,初中计算机基础知识练习题集锦(学生)
  5. 知乎用户行为预测数据比赛,10万奖金等你来Battle!
  6. 风控建模 python 知乎_风控建模基本要求及面试问题小结
  7. 计算机的80端口被占用 - 思路篇
  8. 拳王公社:缺流量难变现?文库引流让你0成本可获5000精准粉!
  9. c++层次遍历_数据结构与算法,弄懂图的两种遍历方式
  10. 解决eclipse 端口被占用问题
  11. 深度学习 --- 随机神经网络详解(玻尔兹曼机学习算法、运行算法)
  12. DEV MessageBox
  13. vs 错误error C2011:类型重定义的解决办法
  14. 数论入门整理(updating)
  15. TELEPORTSTONE.LUA --传送宝石
  16. 所有的美好,都始于遇见
  17. SAP S4 会计科目表的设计
  18. Snipaste-无广告截图工具
  19. Linux上重置MySQL密码 错误 ERROR 1045 (28000): Access denied for user ‘‘root‘‘@‘‘localhost‘‘ (using passw...
  20. stackoverflow愚人节彩蛋效果

热门文章

  1. 饥荒控制台指令【转自Steam社区】
  2. 用户决定Windows的CPU占用率
  3. Qt官方示例-速度仪表盘
  4. 漏洞检测之POC的学习
  5. GDUT Monthly
  6. 使用Tickeys寻找打字音效
  7. 百度富文本编辑器UMeditor使用
  8. 抓取服务器作业文档不存在,易飞ERP问题解答.doc
  9. java parcelable list_Parcelable序列化处理
  10. 传日本NTT Data在竞购戴尔Perot Systems