코드 카타
주어진 문자열 내에서 중복되지 않고 이어지는 가장 긴 문자열의 길이 구하기
내 답안
const getLengthOfStr = str => {
let arr = [];
let maxLength = 0;
let alphabet = "";
for (let j = 0; j < str.length; j++) {
for (let i = j; i<str.length; i++) {
alphabet = str.charAt(i);
if (arr.includes(alphabet)) {
if(maxLength < arr.length) {
maxLength = arr.length;
}
arr = [];
break;
} else {
arr.push(alphabet);
}
}
}
return maxLength;
}
다른 답안 1
const getLengthOfStr = str => {
let countMax = 0;
let countString = “”;
for(let i = 0; i < str.length; i++) {
let indexOfStr = countString.indexOf(str[i]);
if (indexOfStr !== -1){
countString = countString.substr(indexOfStr + 1);
}
countString = countString + str[i];
console.log(countString, i);
countMax = Math.max(countMax, countString.length);
console.log(countString.length);
}
return countMax
}
let aaa = “sttng”;
console.log(getLengthOfStr(aaa));
다른 답안 2
const getLengthOfStr = str => {
let max = 0; // 길이의 최대값
for (let i=0; i < str.length; i++) {
let curWord = ""; // 단어 초기화
let curLength = 0; // 길이 초기화
for (s of str.slice(i)) { // 새로운 시작점~끝까지 str 자르기
// 1. 단어 작업 : 더할거냐, 초기화할거냐
if(!curWord.includes(s)) {
curWord += s;
curLength++;
} else {
curWord = s; // a
curLength = 1; // 1
}
// 2. 단어 작업하고 길이 최대값 비교
if (max <= curLength) {
max = curLength; // max 최대값
}
}
}
return max;
}
'TIL' 카테고리의 다른 글
[TIL-126] 위코드 26일차: 코드 카타 (0) | 2022.02.18 |
---|---|
[TIL-125] 위코드 25일차: 코드 카타 / git merge master, git rebase master (0) | 2022.02.17 |
[TIL-122~123] 노마드코더 ReactJS #3.0~#3.5 (0) | 2022.02.16 |
[TIL-123] 위코드 23일차: React Router & Sass (0) | 2022.02.15 |
[TIL-122] 위코드 22일차: ReactJS / 코드 카타 (0) | 2022.02.14 |