无重复字符子串
def substring(s):
# 哈希集合,记录每个字符是否出现过
occ = set()
n = len(s)
# 右指针,初始值为-1,相当于字符串的左边界的左侧,还没开始移动
rk ,ans = -1,0
for i in range(n):
if i !=0:
# 左指针向右移动一格,移除前一个字符
occ.remove(s[i-1])
while rk + 1 <n and s[rk+1] not in occ:
#不断地移除移除右指针
occ.add(s[rk+1])
rk+=1
# 第i到rk个字符是一个极长的无重复字符子串
ans = max(ans,rk-i+1)
return ans
s = "abcc"
print(substring(s))