题目

使用滑动窗口来结合Set来解决。

var lengthOfLongestSubstring = function(s) {
  const set=new Set();
  const len=s.length;
  let rk=-1,max=0;
  for(let i=0;i<len;i++){
    //如果i不是0,就删除指针i的上一个节点在set中保存的值
    if(i!=0){
      set.delete(s.charAt(i-1));
    }
    while(rk+1<len&&!set.has(s.charAt(rk+1))){
      set.add(s.charAt(rk+1));
      rk++;
    }
    max=Math.max(max,rk-i+1);
  }
  return max;
};