Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string "".
입출력 예
Input: strs = ["flower","flow","flight"]
Output: "fl"
strs의 0번째 인덱스를 기준으로 str의 모든 요소를 검사합니다. 모든 요소의 인덱스들이 모두 같은 값을 가진다면 prefix에 값을 추가하고 아니라면 바로 return합니다.
var longestCommonPrefix = function(strs) {
let prefix = '';
if(!strs.length) return prefix;
for(let i = 0; i < strs[0].length; i++){
let now = strs[0][i];
let flag = true;
strs.forEach(val => {
if(val[i] !== now){
flag = false;
}
});
if(!flag){
return prefix;
}else{
prefix += now;
}
}
return prefix;
};
some이나 every를 통해 더 간단하게 작성할 수 있습니다.
var longestCommonPrefix = function(strs) {
let prefix = '';
if(!strs.length) return prefix;
for(let i = 0; i < strs[0].length; i++){
let testChar = strs[0][i];
if(strs.some(str => str[i] !== testChar)){
return prefix;
} else {
prefix += testChar;
}
}
return prefix;
};
var longestCommonPrefix = function(strs) {
let prefix = '';
if(!strs.length) return prefix;
for(let i = 0; i < strs[0].length; i++){
let testChar = strs[0][i];
if(strs.every(str => str[i] === testChar)){
prefix += testChar;
} else {
return prefix;
}
}
return prefix;
};