/** * @param {string} s * @return {number} */ var lengthOfLongestSubstring = function (s) { // 用于存储当前窗口中的字符 const charSet = newSet(); // 窗口左指针 let left = 0; // 最长子串长度 let maxLength = 0;
for (let right = 0; right < s.length; right++) { while (charSet.has(s[right])) { // 移动左指针,移除左侧重复的字符 charSet.delete(s[left]); // 重复此步骤直到右指针所在的字符不在子串当中 left++; } charSet.add(s[right]); maxLength = Math.max(maxLength, right - left + 1); } return maxLength; };