无重复字符的最长子串
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
if not s:return 0 #判断是否为空
left = 0
lookup = set() # set() 函数创建一个无序不重复元素集
n = len(s) # 字符串长度
max_len = 0 # 最大长度
cur_len = 0 # 滑动框长度
for i in range(n): #遍历字符串
cur_len += 1 # 子串长度
while s[i] in lookup: # 字符在数列中
lookup.remove(s[left]) #删除左侧元素
left += 1 #左移一位
cur_len -= 1 # 重复减去加的值
if cur_len > max_len:max_len = cur_len #取最大值
lookup.add(s[i]) #不在队列中,队列字符+1
return max_len