#给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。
#滑动窗口 python中用set集合
#如果当前字符在滑动窗口中有,则向左移动
#直至访问完字符串
#例子:abcabc
class Solution:
def maxsubstring(self,s:str)->int:
cwd=set()
n=len(s)
cur_len=0
left=0
max_len=0 #记录最大值
for i in range(n):
cur_len=cur_len+1 #目前的窗口大小
while s[i] in cwd:
cwd.remove(s[left]) #窗口左指针
left += 1
cur_len -= 1
cwd.add(s[i])
if cur_len>max_len:max_len=cur_len
print(cwd)
return max_len
s=input('请输入字符串')
results=Solution().maxsubstring(s)
print(results)
滑动窗口 set(),目前窗口大小,左指针;自己写代码时,“while s[i] in cwd:”写成了if,有问题,得想一下为什么??