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