0%
滑动窗口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| class Solution: def lengthOfLongestSubstring(self, s: str) -> int: s_len = len(s) ans = 0 start = 0 end = 0 visited_char_set = set() for start in range(s_len): end = max(end, start) visited_char_set.add(s[start])
while end + 1 < s_len and s[end + 1] not in visited_char_set: visited_char_set.add(s[end + 1]) end += 1 ans = max(ans, end - start + 1)
visited_char_set.remove(s[start]) return ans
|