반복되는 문자가 없는 최고로 긴 문자열의 길이
슬라이딩 윈도우 방법을 사용함.
시작과 끝 인덱스를 이동하며 중복이 없는 문자열을 확인하고 길이를 저장한다.
/**
* @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)
}