题目
给定一个字符串
s
,请你找出其中不含有重复字符的 最长 子串 的长度。
解题
def lengthOfLongestSubstring(s: str) -> int:
char_set = set() # 用来存储当前窗口的字符
left = 0 # 左指针
max_length = 0 # 记录最长的长度
# 右指针不断移动
for right in range(len(s)):
# 如果出现重复字符,则移动左指针
while s[right] in char_set:
char_set.remove(s[left])
left += 1
# 将当前字符加入集合
char_set.add(s[right])
# 更新最大长度
max_length = max(max_length, right - left + 1)
return max_length
s = "abcabcbb"
print(lengthOfLongestSubstring(s)) # 输出: 3,最长子串是 "abc"