[Leetcode] 3. Longest Substring Without Repeating Characters

Seongjun Lee·2022년 2월 19일
0

[Leetcode] - Problem

목록 보기
3/43
post-thumbnail

Problem

문제 링크

반복되는 문자가 없는 최고로 긴 문자열의 길이

Solution

슬라이딩 윈도우 방법을 사용함.
시작과 끝 인덱스를 이동하며 중복이 없는 문자열을 확인하고 길이를 저장한다.

  1. 마지막 인덱스를 늘린다.
  2. 시작과 끝 인덱스를 이용해서 문자열을 추출화여 반복되는 문자열이 있는지 검사한다.
  3. 반복이 없다면 길이를 비교하여 저장한다.
  4. 2번 작업을 진행한다. 문자열에 반복이 있다면 시작 인덱스를 늘린다.

JS Code

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
    let [start, end] = [0,0]
    let maxLen = 0
    
    while(end <= s.length) {
        
        if (isRepeatChar(s.substring(start, end))) {
            start++
            continue;
        }
        maxLen = Math.max(maxLen , end-start)
        end++
    }
    
    return maxLen
};

const isRepeatChar = (str) => {
    return !!Array.from(str)
                .find((item, idx, arr) => arr.indexOf(item) !== idx)
}
profile
Hi there 👋

0개의 댓글