숫자 체계에서 두 숫자의 최대 공약수(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