N

(Leet Code JS)Longest Substring Without Repeating Characters 본문

Leet Code 알고리즘

(Leet Code JS)Longest Substring Without Repeating Characters

naeunchan 2021. 11. 2. 10:04
728x90
반응형

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

 

Longest Substring Without Repeating Characters - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

Map을 활용한 문제 풀이.

 

s의 각 문자부터 시작하면서 map을 선언한다.

substring을 추출하는데, 중복되는 문자가 없어야 한다.

 

그렇기 때문에 이중 for문을 사용하여 substring을 구하고,

내부 for문에서는 문자가 이미 나와있는지 map을 통해 확인한다.

만약 해당 문자가 map에 없다면 string에 문자를 계속 이어 붙여준다.(map에 true로 set)

그러나 해당 문자가 이미 map에 있다면 바로 break하여 탐색을 중지한다.

 

내부 for문이 끝나면 현재까지의 string 길이와 length를 비교하여 더 큰 값을 length로 갱신하면 된다.

const lengthOfLongestSubstring = (s) => {
    let length = 0;
    
    for(let i = 0; i < s.length; i++){
        const substrings = new Map();
        let string = "";
        
        for(let j = i; j < s.length; j++){
            if(!substrings.get(s[j])){
                substrings.set(s[j], true);
                string += s[j];
            } else{
                break;
            }
        }
        
        length = length < string.length ? string.length : length;
    }
    
    return length;
};
728x90
반응형

'Leet Code 알고리즘' 카테고리의 다른 글

(Leet Code JS)Subdomain Visit Count  (0) 2021.11.06
(Leet Code JS)Subarray Sum Equals K  (0) 2021.11.06
(Leet Code JS)Generate Parentheses  (0) 2021.10.19
(Leet Code JS)Maximum Subarry  (0) 2021.10.12
(Leet Code JS)Gas Station  (0) 2021.10.04