Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหา gcd ของสองสตริงใน JavaScript


ในระบบตัวเลข ตัวหารร่วมที่ยิ่งใหญ่ที่สุด (GCD) ของตัวเลขสองตัวคือจำนวนที่มากที่สุดที่หารตัวเลขทั้งสองตัว ในทำนองเดียวกัน หากเราใช้แนวคิดนี้กับสตริง gcd ของสองสตริงจะเป็นสตริงย่อยที่ยิ่งใหญ่ที่สุด (ความยาวมากที่สุด) ที่มีอยู่ในทั้งสองสตริง

ตัวอย่างเช่น −

หากทั้งสองสตริงคือ −

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

จากนั้น gcd ของสตริงเหล่านี้จะเป็น −

const gcd = 'abc';

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสองสตริง str1 และ str2 และคำนวณและส่งคืน gcd ของพวกมัน

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

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