leetcode 3 無重複字元的最長子串

2021-10-11 03:24:03 字數 1091 閱讀 1976

首先注意到是最長子串 而不是最長子序列。

可以使用滑動視窗,i和j分別指向視窗的兩端。使用 乙個字典去記錄視窗內的值。

如果當前的字元是已經出現過的,那麼左邊界必須往右移,移動到剛剛沒過當前字元的位置。如果當前字元沒有出現過,那麼移動右邊界把這個字元劃分到視窗內。每次視窗變化,和最大視窗長度進行比較,並把最大值賦值給最大視窗長度。

class

solution

(object):

deflengthoflongestsubstring

(self, s)

:"""

:type s: str

:rtype: int

"""max_len =

0 max_set =

set(

) i =

0 j =

0while i<

len(s)

and j<

len(s)

:if s[i]

notin max_set:

max_set.add(s[i]

) i+=

1 max_len =

max(max_len,i-j)

else

:while s[j]

!=s[i]

: max_set.remove(s[j]

) j+=

1 max_set.remove(s[j]

) j+=

1 max_set.add(s[i]

) i+=

1 max_len =

max(max_len,i-j)

return max_len

leetcode 3 無重複的字串

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...

leetcode 3 無重複字元的最長字元子串

堅持打卡!題目 給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwk...

leetcode 3 最長無重複字串

3.longest substring without repeating characters 題面 given a string,find the length of the longest substring without repeating characters.給定字串,找到最長無重複字...