문제
Given a string s, find the length of the longest substring without repeating characters.
문자열이 지정된 경우 반복 문자 없이 가장 긴 부분 문자열의 길이를 찾아라.
풀이법
1. 겹치치 않는 문자열을 저장한다. a2. a에서 s[i]와 겹치는 게 있는지 확인한다.
- 겹치는 게 있다면 a에서 s[i] 인덱스를 기준으로 slice 한다.
- 겹치는 게 없다면 a에 s[i]를 추가한다.
3. 가장 긴 문자열 기준이므로 문자열 길이를 저장한다.
코드
var lengthOfLongestSubstring = function (s) {
let substr = ''; // 겹치치 않는 문자열 저장
let count = 0;
for (let i = 0; i < s.length; i++) {
if (substr.includes(s[i])) {
// 만약 substr에 포함되어 있으면
// 포함되어 있는 s[i]의 인덱스를 찾아서 +1부터 끝까지 자른다.
substr = substr.slice(substr.indexOf(s[i]) + 1);
}
substr += s[i];
if (count < substr.length) {
count = substr.length;
}
}
return count;
};
'알고리즘' 카테고리의 다른 글
[leetCode / Javascript] Spiral Matrix (0) | 2023.09.11 |
---|---|
[javascript/DFS] 최대점수 구하기 (0) | 2023.08.12 |
스택 프레임이란? (Stack Frame) (0) | 2023.08.08 |
[백준/node.js] 1316번 그룹단어체커 (0) | 2023.06.11 |