编辑代码

// 暴力法
function lengthOfLongestSubstring1(s) {
    let res = 0;
    for(let i = 0; i < s.length; i ++) {
        let maxlen = 0;
        const set = new Set();
        for(let j = i; j < s.length && !set.has(s[j]); j++) {
            set.add(s[j]);
            maxlen++;
        }
        res = Math.max(res, maxlen);
    }
    return res;
}
// 双指针
function lengthOfLongestSubstring2(s) {
    let res = 0;
    const set = new Set();
    let left = 0;
    let right = 0;
    while(left < s.length) {
        while(right < s.length && !set.has(s[right])) {
            set.add(s[right]);
            right++;
        }
        res = Math.max(res, right - left)
        set.delete(s[left]);
        left++
    }
    return res;
}


const str = 'qwerty';
console.log(lengthOfLongestSubstring2(str))