정말 모르겠던 code-kata 3일차....
아래 블로그의 정답을 참고했다.
const getLengthOfStr = str => {
if(!str){return 0}
let arr = [];
let string = "";
for (let i in str) {
if (string.includes(str[i])) {
string = string.slice(string.indexOf(str[i]) + 1);
}
string += str[i];
arr.push(string.length);
}
return Math.max(...arr); // 14
}
처음에 반복되는 문자열 사이에 ,를 찍고 split하여 길이를 비교하여 풀려고 했지만 ,를 찍는것에 계속 난항을 겪었다.
처음에 빈 배열과 문자열을 정하고 계속 더해주는데 문자열이 중복된 문자열을 포함한다면 해당 인덱스부터 끝 인덱스까지의 string이 구해진다.
그리고 그 string들의 길이를 배열로 나열해주고 최대값을 구하면 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 구할 수 있다.