String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요.
str: 텍스트 return: 중복되지 않은 알파벳 길이 (숫자 반환)
예를 들어, str = "abcabcabc" return 은 3 => 'abc' 가 제일 길기 때문
str = "aaaaa" return 은 1 => 'a' 가 제일 길기 때문
str = "sttrg" return 은 3 => 'trg' 가 제일 길기 때문
str = "sttrg";
const getLengthOfStr = str => {
let sliceStr = [];
let lastStr = 0;
for (let i = 0; i < str.length; i++) {
if (sliceStr.indexOf(str[i]) === -1) {
sliceStr.push(str[i]);
if (lastStr < sliceStr.length) {
lastStr = sliceStr.length;
}
} else {
sliceStr = sliceStr.slice(sliceStr.indexOf(str[i]) + 1);
sliceStr.push(str[i]);
}
}
return lastStr;
}
일단 앞에 빈배열 선언과 새로운 변수를 0 으로 만들어주는 것 들을 생각하기 전에.. 무조건 반복문이 나오겠다! 라는 생각밖엔 못했다 .. 쭈굴 .. 아직 부족한 나 .. 구글링을 통해 가져온 코드를 이해 ^^ 라도 해보자!
for (let i = 0; i < str.length; i++)
let sliceStr = [];
if (sliceStr.indexOf(str[i]) === -1) {
sliceStr.push(str[i]);}
if (sliceStr.indexOf(str[i]) === -1) {
sliceStr.push(str[i]);
if (lastStr < sliceStr.length) {
lastStr = sliceStr.length;
}
if (sliceStr.indexOf(str[i]) === -1)
else {
sliceStr = sliceStr.slice(sliceStr.indexOf(str[i]) + 1);
sliceStr.push(str[i]);
}
sliceStr.push(str[i]);