[LeetCode] 14. Longest Common Prefix (LCP) - JavaScript

nemo·2022년 5월 11일
0

문제

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;
};


문제 출처
https://leetcode.com/problems/longest-common-prefix/

0개의 댓글