3. 无重复字符的最长子串 - 力扣(LeetCode)

 1 class Solution(object):
 2     def lengthOfLongestSubstring(self, s):
 3         """
 4         :type s: str
 5         :rtype: int
 6         """
 7         length = len(s)
 8         if length == 0  or length == 1:
 9             self = length
10             return self
11         self = 1
12         left = 0
13         right = 1
14         ans = set()
15         ans.add(s[left])
16         while left < length:
17             while right < length:
18                 if s[right] in ans:
19                     break
20                 else:
21                     ans.add(s[right])
22                     right += 1
23             self = max(self, len(ans))
24             ans.remove(s[left])
25             left += 1
26         self = max(self, len(ans))
27         return self

左右下标定位滑动窗口,哈希set()协助判断重复