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 "".
가장 긴 공통 접두사를 출력하고, 공통되는 부분이 없을 경우 빈 문자열을 출력한다.
["flower","flow","flight"]
fl
두 문자열을 비교해서 공통 접두사를 반환하는 함수를 생성하여 사용한다.
첫 번째 문자열과 두 번째 문자열의 공통 접두사를 찾으면 해당 접두사를 answer에 담고, answer와 다음 문자열을 비교해 공통 접두사를 찾는다. 이런 식으로 좁혀나가면 된다.
// 두 문자열의 공통 접두사를 반환하는 함수
function commonPrefix(str1, str2) {
let result = ""; // 접두사가 없는 경우로 초기화
let l1 = str1.length,
l2 = str2.length;
for (let i = 0, j = 0; i < l1 && j < l2; i++, j++) {
if (str1[i] !== str2[j]) break;
result += str1[i];
}
return result;
}
// 가장 긴 접두어를 반환하는 함수
var longestCommonPrefix = function(strs) {
let answer = strs[0]; // 첫 번째 문자로 초기화
// 두 번째 문자부터 answer와 비교하며 순회
for (let i = 1; i < strs.length; i++) {
answer = commonPrefix(answer, strs[i]);
// flower, flow => flo
// flo, flight => fl
}
return answer;
};