文章目录

  • 题目
    • 题目详情
    • 示例
  • 解题代码
    • 思路
    • 代码
    • 运行结果
    • 最佳方案

题目

题目详情

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

示例

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

解题代码

思路

  1. 如果需要查找到最长的子串,那么久需要记录子串的位置,值,以及长度。
  2. 那么我们直接用到字典,字典可以记录子串的位置,以及值
  3. 如abcabcd,字典中会存下a,b,c分别的值和位置,后面遇到的时候会更新他们新的位置,以便d能够以连续的位置存下。

代码


class Solution:def lengthOfLongestSubstring(self,s):dic = {}i , length = 0 , 0for j in range(len(s)):if s[j] in dic:i = max(dic[s[j]] , i)   #最长子串的初始位置length = max(length,j-i+1)   #求最长子串的长度dic[s[j]] = j + 1            #最长子串的值和位置return length

运行结果

最佳方案

用时64ms的最快的一个解决方案:


class Solution:def lengthOfLongestSubstring(self, s: 'str') -> 'int':start = best = 0checked = {}for i in range(0, len(s)):if s[i] in checked and checked[s[i]] >= start:start = checked[s[i]] + 1else:if i+1-start > best:best = i+1-startchecked[s[i]] = ireturn best

leetcode--无重复字符的最长子串--python相关推荐

  1. leetcode 无重复字符的最长子串

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

  2. 无重复字符的最长子串php,LeetCode - 无重复字符的最长子串 - Golang

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

  3. 无重复最长子串python_leetCode 无重复字符的最长子串 python(Longest Substring Without Repeating Characters) python...

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

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

    给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度. 示例一: 示例二: 示例三: 思路分析: 首先定义一个Set集合存储多个字符,同时定义一个右指针rk=-1,外层套一个循环定义左指针 ...

  5. python输入多个字符串、输入最长的一串_无重复字符的最长子串(Python之暴力求解)...

    无重复字符的最长子串(Python之暴力求解) 例题: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例: (1) 输入: "abcabcbb" 输出: 3 ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. POJ1523 SPF tanjar割点求块数
  2. python让工作自动化_python操作excel让工作自动化
  3. SpringMVC核心流程图
  4. 牛客 - 养花(最大流)
  5. d3.js 简介和安装
  6. GitHub多人协作简明教程
  7. ubuntu14.04+gtsam安装(亲测)
  8. Redis 5.0.8+常见面试题(单线程还是多线程、先更新缓存还是数据库、雪崩穿透击穿解决办法...)
  9. Java版本中最好用的网易云音乐、qq音乐api请求工具,你还在忙于如何使用java调音乐api?来看下这里的实现
  10. Chango的数学Shader世界(十八)RayTrace三维分形(三)—— 完善,距离场软阴影
  11. 远程控制teamviewer|远程桌面teamviewer|远程桌面连接软件teamviewer|teamviewer无人值守
  12. uni-app 使用 @touchmove.stop.prevent 导致弹框内容无法滚动
  13. 使用SaltStack Returner将Salt作业信息接入Elasticsearch的实践(踩坑)
  14. jpg转bmp c语言 linux,C++_C语言实现BMP转换JPG的方法,本文实例讲述了C语言实现BMP转 - phpStudy...
  15. 京东产品上架如何批量上传商品素材?
  16. 移动宽带安装说明一(刘欣)
  17. 永州科技学院有计算机专业吗,湖南永州市科技学院
  18. 转】用Mahout构建职位推荐引擎
  19. dockers-系统学习
  20. html象棋开题报告设计要求,C++游戏设计中国象棋开题报告.docx

热门文章

  1. JS中8个常见的陷阱
  2. hive 使用技巧笔记
  3. Lambda表达式可以被转换为委托类型
  4. 批量创建用户和设置密码
  5. 「hadoop」hadoop启动需要相关的命令(仅供本人使用)
  6. 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇
  7. sqoop2增量导入无法指定last value问题解决方法
  8. Postfix邮件服务搭建
  9. iOS开发系列--通知与消息机制
  10. 【百度地图API】如何制作班级地理通讯录?LBS通讯录