题目链接:不含重复字符的最长子字符串
题目描述:给定一个字符串 s
,请你找出其中不含有重复字符的 最长连续子字符串 的长度。
方法:
使用滑动窗口(双指针)。窗口中永远是不含重复字符的连续子字符串,求出其最大长度。
// 滑动窗口
var lengthOfLongestSubstring = function(s) {
const length=s.length;
if(length<=1)
return length;
let left=0,right=0,ans=0;
const set=new Set();
while(right<length){
if(!set.has(s[right])){
ans=Math.max(ans,right-left+1);
set.add(s[right]);
right++;
}else{
while(set.has(s[right])){
set.delete(s[left]);
left++;
}
}
}
return ans;
};