String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요.
str: 텍스트 return: 중복되지 않은 알파벳 길이 (숫자 반환)
예를 들어, str = "abcabcabc" return 은 3 => 'abc' 가 제일 길기 때문
str = "aaaaa" return 은 1 => 'a' 가 제일 길기 때문
str = "sttrg" return 은 3 => 'trg' 가 제일 길기 때문
중복되는 알파벳이 없을 때 까지는 새로운 배열(arr)에 push 해준다.
두번째 빈 배열(arrr2)에 길이를 비교해 첫번째 배열의 길이보다 작다면 두번째 배열에 첫번째 배열의 길이를 넣어준다. ( 똑같은 알파벳을 만난다면 그 앞까지는 다 지워줘야 하기 때문 )
똑같은 알파벳을 만난다면 arr 값들을 초기화 해준다.
중복되는 알파벳 값을 push 해준다.
두 배열의 길이를 비교한다.
const getLengthOfStr = str =>{
let arr = [];
let arr2 = [];
for(let i =0;i<str.length;i++){
if(arr.indexOf(str[i]) === -1){ // arr에 str값이 없으면~
arr.push(str[i]);
if(arr.length > arr2.length){ //arr을 초기화시켜줄꺼니까
arr2 = arr;
}
console.log(arr)
console.log(arr2.length);
}else{ //앞부분 짤라주기
console.log(arr);
arr = arr.slice(arr.indexOf(str[i])+1);
console.log(arr);
arr.push(str[i]);// t
console.log(arr)
}
}
return Math.max(arr.length,arr2.length);
}
getLengthOfStr('sttrg');