strs은 단어가 담긴 배열이다. 공통된 시작 단어(prefix)를 반환하라.
Ex)
strs = ['start', 'stair', 'step'] return은 'st'
strs = ['start', 'wework', 'today'] return은 ''
const getPrefix = strs => {
let prefix = strs[0];
if(strs.length === 0){
prefix = "";
}
for(let i=1; i<strs.length; i++){
while(strs[i].indexOf(prefix) !== 0){
prefix = prefix.substring(0, prefix.length-1)
console.log('prefix:' + prefix)
}
}
return prefix;
}
💬 substring 과 slice 는 비슷한 기능을 해준다! (단, substring 과는 달리 slice 는 배열에서도 사용 가능)
const getPrefix = strs => {
if (strs.length === 0) {
return '';
}
let prefix = strs[0]
let preSplit = prefix.split('');
let idx = 0;
let stop = false;
for (let i = 0; i < preSplit.length; i++) {
let char = preSplit[i]; // [s, t, a, r, t]
for (let j = 0; j < strs.length; j++) {
let thisPreSplit = strs[j].split(''); // [start, stair, step]
if (char !== thisPreSplit[i]) {
idx = i-1;
stop = true;
break;
}
}
if (stop) break;
}
if (!stop) {
idx = preSplit.length - 1;
}
return preSplit.slice(0, idx+1).join('');
}
❗️항상 배열이나 문자열이나 비어있는 경우를 잘 따져서 식 작성할 것!