无重复字符的最长子串问题
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
如 输入 abcabcbb 输出 3
- 本题难点在于对于遍历过程中输入的每一个字符,都要在候选子串中检查是否已经出现。同时,子串的性质叶要求必须是连续的字符序列。每次输入字符都同时记录下最大的子串长度。
- 综合以上性质,采用了滑动窗口来解决问题。滑动窗口本质就是队列。
- `
- class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
win=set()
left=0
max_l=0
cur_l=0
leng=len(s)
for i in range(leng):
cur_l+=1
while s[i] in win:
win.remove(s[left])
left+=1
cur_l-=1
win.add(s[i])
if max_l<cur_l:max_l=cur_l
return max_l - `