class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
hash = {}
maxLen = 0
beginIdx = 0
for i in range(0, len(s)):
# 找到重复子串,删除之前的子串
if s[i] in hash:
# 删除重复之前的子串标记
for j in range(beginIdx, hash[s[i]]):
del hash[s[j]]
# 更新子串起始位置
beginIdx = hash[s[i]] + 1
# 更新重复标记,记录index
hash[s[i]] = i
# 计算字串长度
lenTemp = i - beginIdx + 1
if lenTemp > maxLen:
maxLen = lenTemp
# 返回结果
return maxLen
Leetcode.03.无重复字符的最长子串
最新推荐文章于 2024-10-05 12:29:44 发布