var lengthOfLongestSubstring = function(s) {
const arr = s.split('');
let longestWord = '';
let newWord = '';
let answer = 0;
arr.map((a) => {
const idx = newWord.indexOf(a);
if(idx !== -1) {
if(answer < newWord.length) {
longestWord = newWord;
answer = newWord.length;
}
newWord = newWord.slice(idx+1) + a;
} else {
newWord += a;
}
})
if(answer < newWord.length) {
longestWord = newWord;
answer = newWord.length;
}
return answer;
};
요즘 바빠서 코딩테스트 문제를 많이 못 풀고 있다가 어쩌다가 풀게 된 문제이다. 코드가 조금 깔끔하지는 못하지만 O(n)
에 해결한 문제이다. 각 글자별로 돌면서 존재하는 지 판단하고 글자가 존재하면 그 글자 다음부터 이어주면서 문제를 해결했다.