难度等级:中等

题目描述:

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

示例 1:

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

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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

1、利用字典 键值对的特点,可以存字符和其下标

2、遍历字符串,不断更新起始下标,并更新最长长度。

解题代码:

class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
cache = {}
longest = 0
start = 0
for i,v in enumerate(s):
if v in cache:
start = max(start, cache[v]+1)
cache[v] = i
longest = max(longest, i-start+1)
return longest

最新文章

  1. c#与.net的简介
  2. Java调优之jvm和线程的内存分析
  3. highcharts 饼图显示数据比例如何保留二位小数
  4. top每个参数的意义
  5. linux服务器上的php代码通过nginx发布,解决pathinfo模式问题
  6. 手机时间选择插件 Jquery
  7. TFTP:简单文本传输协议,BOOTP:引导程序协议
  8. linux平台很nice的工具
  9. [NOIP2001提高组]数的划分
  10. mysql - Truncated incorrect DOUBLE value: 'undefined'
  11. python两段多线程的例子
  12. debian shell脚本关联
  13. pointer-events: none 的两个应用场景
  14. android不知不觉偷拍他人功能实现(手机关闭依然拍照)【申明:来源于网络】
  15. vagrant up报错 Warning: Authentication failure. Retrying...解决方案
  16. vivado自动化tcl实现(更新中)
  17. U3D学习11——nav导航和动画
  18. 关于oracle的锁表解决session marked for kill
  19. django2 xadmin pip list
  20. PageRank学习

热门文章

  1. 我为NET狂官方面试题-数据库篇答案(转)
  2. SQL decode 函数的用法
  3. 刷题49. Group Anagrams
  4. HDU 4866 多校1 主席树+扫描线
  5. Bulma CSS - 简介
  6. spring源码 ListableBeanFactory接口
  7. WebApi发布IIS404
  8. Ubantu学习笔记3
  9. 基础语法-循环结构for
  10. Java8大排序算法