문제

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;
};

 

+ Recent posts