题目
给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。
示例
示例 1:
输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
解法
使用到了滑动窗口的方法,用集合来表示
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
left=0
cur_length=0
max_length=0
sub_string=set()
for i in range(len(s)):
cur_length+=1 #新加入一个
while s[i] in sub_string: #如果这个存在,一直从左边删除元素
sub_string.remove(s[left])
left+=1
cur_length-=1
sub_string.add(s[i]) #加入集合中
if cur_length>max_length:
max_length=cur_length #或者用max()
return max_length