code-kata 3일차

정말 모르겠던 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들의 길이를 배열로 나열해주고 최대값을 구하면 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 구할 수 있다.

좋은 웹페이지 즐겨찾기