ในระบบตัวเลข ตัวหารร่วมที่ยิ่งใหญ่ที่สุด (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