Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 두 문자열의 gcd 찾기

<시간/>

숫자 체계에서 두 숫자의 최대 공약수(GCD)는 두 숫자를 나누는 가장 큰 숫자입니다. 마찬가지로 이 개념을 문자열에 적용하면 두 문자열의 gcd는 두 문자열에 모두 존재하는 가장 큰 부분 문자열(길이가 가장 큼)입니다.

예를 들어 -

두 문자열이 -

인 경우
const str1 = 'abcabc';
const str2 = 'abc';

그러면 이 문자열의 gcd는 -

가 됩니다.
const gcd = 'abc';

우리는 두 개의 문자열 str1과 str2를 받아 gcd를 계산하고 반환하는 JavaScript 함수를 작성해야 합니다.

예시

이에 대한 코드는 -

const str1 = 'abcabc';
const str2 = 'abc';
const findGCD = (str1 = '', str2 = '') => {
   if (str1 + str2 !== str2 + str1){
      // not possible
      // no common element
      return "";
   } else if (str1 == str2){
      return str1;
   } else if (str1.length > str2.length){
      return findGCD(str1.slice(str2.length), str2);
   } else {
      return findGCD(str2.slice(str1.length), str1);
   }
};
console.log(findGCD(str1, str2));

출력

콘솔의 출력은 -

abc