Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm gcd của hai chuỗi trong JavaScript

Trong hệ thống số, Ước chung lớn nhất (GCD) của hai số là số lớn nhất chia cả hai số. Tương tự, nếu chúng ta áp dụng khái niệm này cho các chuỗi, thì gcd của hai chuỗi là chuỗi con lớn nhất (độ dài lớn nhất) có trong cả hai chuỗi.

Ví dụ -

Nếu hai chuỗi là -

const str1 = 'abcabc';
const str2 = 'abc';

Sau đó, gcd của các chuỗi này sẽ là -

const gcd = 'abc';

Chúng tôi được yêu cầu viết một hàm JavaScript có hai chuỗi str1 và str2 và tính toán và trả về gcd của chúng.

Ví dụ

Mã cho điều này sẽ là -

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

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

abc