leetcod003 Longest_Substring_Without_Repeating

news/2024/7/5 7:40:57
"""
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
"""class Solution:def lengthOfLongestSubstring(self, s):# last visited index in the stringvisited_last_index = [-1 for _ in range(256)] ## ascIIlongest = 0start = 0for index, value in enumerate(s):if visited_last_index[ord(value)] == -1:longest = max(longest,(index)-start + 1)else:longest = max(longest,(index-1)-start+1)##unmarkfor i in range(start,visited_last_index[ord[value]]):visited_last_index[ord[s[i]]] = -1start = visited_last_index[ord[value]] + 1visited_last_index[ord[value]] = indexreturn longestclass Solution2:def lengthOfLongestSubstring(self,s):# 存储历史循环中最长的子串长度max_len = 0# 判断传入的字符串是否为空if s is None or len(s) == 0:return max_len# 定义一个字典,存储不重复的字符和字符所在的下标dict = {}# 存储每次循环中最长的子串长度temp = 0# 记录最近重复字符所在的位置+1start = 0for i in range(len(s)):# 判断当前字符是否在字典中和当前字符的下标是否大于等于最近重复字符的所在位置if s[i] in dict and dict[s[i]] >= start:# 记录当前字符的值+1start = dict[s[i]] + 1# 在此次循环中,最大的不重复子串的长度temp = i - start + 1# 把当前位置覆盖字典中的位置dict[s[i]] = i# 比较此次循环的最大不重复子串长度和历史循环最大不重复子串长度max_len = max(max_len, temp)return max_len

http://lihuaxi.xjx100.cn/news/268478.html

相关文章

spring-aop入门

2019独角兽企业重金招聘Python工程师标准>>> 1、AOP介绍 AOP 即 Aspect Oriented Program 面向切面编程 ,首先,在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能。 所谓的核心业务,比如登陆&a…

Python创建目录文件夹

Python创建目录文件夹 Python对文件的操作还算是方便的,只需要包含os模块进来,使用相关函数即可实现目录的创建。 主要涉及到三个函数 1、os.path.exists(path) 判断一个目录是否存在 2、os.makedirs(path) 多层创建目录 3、os.mkdir(path) 创建目录…

【android】java.lang.NoClassDefFoundError或classnotfount等异常错误

在android上开发,当导入一个外部的包,可能会出现这类错误,我已经两次碰到了,一次是用科大讯飞的android开发包,另一次是用Jsoup包(html 解析)。 解决方案: 先去掉加入的外部包 不要把…

qq音乐 android pad版,QQ音乐HD(com.tencent.qqmusicpad) - 4.12.1.4 - 应用 - 酷安

权限信息 com.tencent.qqmusicpad.permission.MMOAUTH_CALLBACK com.tencent.qqmusicpad.permission.MM_MESSAGE com.tencent.qqmusicpad.permission.sendBroadcastPromission 修改系统设置 防止手机休眠 完全的网络访问权限 读取手机状态和身份 查看WLAN连接 查看网络连接 com…

修复阻止程序安装或删除的问题

win10修复阻止程序安装或删除的问题 https://support.microsoft.com/zh-cn/help/17588/fix-problems-that-block-programs-from-being-installed-or-removed

Qt 在Label上面绘制罗盘

自己写的一个小小的电子罗盘的一个小程序,不过是项目的一部分,只可以贴绘制部分代码 效果如下图 首先开始自己写的时候,虽然知道Qt 的坐标系是从左上角开始的,所以,使用了算法,在绘制后,在移动回…

Facebook 万字长文:AI 模型全部迁移至 PyTorch 框架

点击上方“视学算法”,选择加"星标"或“置顶”重磅干货,第一时间送达转自 | 新智元来源 | Facebook AI Blog编辑 | LQ、yaxin2017年,PyTorch诞生,成为当下最流行的深度学习框架。近日,Facebook宣布让PyTorch…

梯度下降到底是什么?

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达我们回忆深度学习“三板斧”:1. 选择神经网络2. 定义神经网络的好坏3. 选择最好的参数集合其中步骤三,如何选择神经网络的好坏呢?梯度下…