daybydoris / algorithms

0 stars 0 forks source link

LeetCode: 3. Longest Substring Without Repeating Characters #1

Open daybydoris opened 2 years ago

daybydoris commented 2 years ago

https://leetcode.com/problems/longest-substring-without-repeating-characters/

daybydoris commented 2 years ago

나의 풀이

let lengthOfLongestSubstring = (s) => {
    const len = s.length;
    let str = '';
    let max = 0;

    for(let i=0;i<len;i++){
        if(!str.includes(s[i])){
            str += s[i];
            if(str.length>max) max = str.length;
        } else{
            const out = str.indexOf(s[i]);
            str = str.slice(out+1) + s[i];
        }
    }
    return max;
}

image

daybydoris commented 2 years ago

슬라이딩 윈도우

let lengthOfLongestSubstring = (s) => {
    const mySet = new Set();
    const len = s.length;
    let l = 0, r = 0;
    let max = 0;

    while (r<len) {
        if(!mySet.has(s[r])) {
            mySet.add(s[r]);
            if(mySet.size > max) max = mySet.size;
            r++;
        } else {
            mySet.delete(s[l]);
            l++;
        }  
    }
    return max;
}

image