코드노트

leetcode 3. Longest Substring Without Repeating Characters 문제 풀이 본문

Code note/자바스크립트 알고리즘 문제풀이

leetcode 3. Longest Substring Without Repeating Characters 문제 풀이

코드노트 2022. 9. 18. 22:40

문제 설명

문자열 s가 주어지면 문자를 반복하지 않고 가장 긴 부분 문자열의 길이를 찾습니다.

ex )

1# s = "abcabcbb"

2# s = "bbbbb"

3# s = "pwwkew"

 

 

문제는 간단하다 s문장에서 문자를 반복하지 않고 각각 다른 문자열로만 되어 있는 문자의 길이를 반환하면 된다.

var lengthOfLongestSubstring = function (s) {
  let strLth = 0;
  let current = "";

  for (let i = 0; i < s.length; i++) {
    current = current.substring(current.indexOf(s[i]) + 1);
    current += s[i];
    console.log(current);

    if (current.length > strLth) {
      strLth = current.length;
    }
  }

  return strLth;
};

- strLth 값은 0이다.

- 반복문을 돌리면서 current값에 substring으로 s문자 값을 하나씩 가져온다.

* substring(시작인덱스, 종료인덱스) // 일정 문자열을 반환한다.

* indexOf() // 특정 문자의 index 반환한다.

- substring으로 current의 indexOf를 통해서 current에 index를 구한다.

- current 에 s문자열을 하나씩 넣어준다.

- current의 length를 strLth에 넣어주면서 length 길이들을 비교하면서 가장 긴 배열을 업데이트 시킨다.

- 거기서 가장 긴 배열을 반환시킨다.

 

 

다른풀이를 보니깐 findIndex, slice 등으로 풀이를 했었다.

다른풀이들도 활용해서 풀어보고 익히는 연습을 해야겠다..!