無重複字符的最長子串問題
給定一個字符串,請你找出其中不含有重複字符的 最長子串 的長度。
如 輸入 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 - `