/**
* @param {number[]} numbers
* @param {number} target
* @return {number[]}
*/
//滑动窗口双指针!!!
var lengthOfLongestSubstring = function(s) {
let left = right = length = maxlength = 0
let set = new Set()
while(right < s.length ){
if(!set.has(s[right]){
set.add(s[right])
length ++
if(length < maxlength){
maxlength = length
}
right ++
}else{
//不含有右指针了,把右指针放进去, length+1
//这里已经删除了至少一个左指针,因此不用判断maxlength
while(set.has(s[right]){
set.delete(s[left])
left ++
length --
}
//长度+1, 右边指针+1
set.add(s[right])
right ++
}
}
return maxlength
}