剑指 Offer 48. 最长不含重复字符的子字符串
Posted 风去幽墨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指 Offer 48. 最长不含重复字符的子字符串相关的知识,希望对你有一定的参考价值。
题目链接:
https://leetcode-cn.com/problems/zui-chang-bu-han-zhong-fu-zi-fu-de-zi-zi-fu-chuan-lcof/
题意:
请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。
题解:
利用python里的字典,记录每个字符上次出现的位置以及区间起始位置,遍历的过程中注意更新维护即可。
代码:
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
dict,ans,st={},0,0
for i in range(len(s)):
if dict.__contains__(s[i]) and dict[s[i]]>=st:
st=dict[s[i]]+1
dict[s[i]]=i
ans = max(ans,i-st+1)
return ans
以上是关于剑指 Offer 48. 最长不含重复字符的子字符串的主要内容,如果未能解决你的问题,请参考以下文章