Code Kata #3 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이

💁 문제 분석

String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요.
str: 텍스트 return: 중복되지 않은 알파벳 길이 (숫자 반환)
예를 들어, str = "abcabcabc" return 은 3 => 'abc' 가 제일 길기 때문
str = "aaaaa" return 은 1 => 'a' 가 제일 길기 때문
str = "sttrg" return 은 3 => 'trg' 가 제일 길기 때문

👍 답변1

function getLengthOfStr(s) {
    let strArr = [];
    let prevStrArr = [];
    for (let i = 0; i < s.length; i++) {
        let ss = s.slice(i, i+1);

        for (let j = 0; j < strArr.length; j++) {
            if (ss === strArr[j]) {
                if (prevStrArr.length < strArr.length) {
                    prevStrArr = strArr.slice();
                }
                strArr = strArr.splice(j+1, strArr.length);

                break;
            }
        }
        strArr.push(ss);

    }
    return Math.max(strArr.length, prevStrArr.length);
}

👍 답변2

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;
    }
  }else{  //str값이 있으면,,,,,,
    arr = arr.slice(arr.indexOf(str[i])+1);
    arr.push(str[i]);// t
  }
}
  return Math.max(arr.length,arr2.length);

}

👍 답변3

function getLengthOfStr(s) {
    let strArr = [];
    let prevStrArr = [];
    for (let i = 0; i < s.length; i++) {
        let ss = s.slice(i, i+1);
        for (let j = 0; j < strArr.length; j++) {
            if (ss === strArr[j]) {
                if (prevStrArr.length < strArr.length) {
                    prevStrArr = strArr.slice();
                }
                strArr = strArr.splice(j+1, strArr.length);
                break;
            }
        }
        strArr.push(ss);
    }
    
    return Math.max(strArr.length, prevStrArr.length);
}

좋은 웹페이지 즐겨찾기