给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。

function lengthOfLongestSubstring(s: string): number {
    let set = new Set();
    let left = 0;
    let maxLength = 0;
 
    for (let right = 0; right < s.length; right++) {
        // 如果遇到了重复字符,就一直移动左边界并删除 Set 里的元素
        while (set.has(s[right])) {
            set.delete(s[left]);
            left++;
        }
        set.add(s[right]);
        // 更新最大长度:窗口大小即为 right - left + 1
        maxLength = Math.max(maxLength, right - left + 1);
    }
 
    return maxLength;
}