無重複字符的最長子串問題思路解析

無重複字符的最長子串問題

給定一個字符串,請你找出其中不含有重複字符的 最長子串 的長度。
如 輸入 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
  • `
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章