Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

หา GCD (ตัวหารร่วมมาก) ของสตริงสองสตริงใน JavaScript

แนวคิด

เหมือน GCD ของตัวเลข แต่สำหรับสตริง: หาสตริงย่อยที่ยาวที่สุดซ้ำได้ทั้งสองสตริง

ตัวอย่าง

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

GCD คือ 'abc'

โค้ดตัวอย่าง (Recursive)

const str1 = 'abcabc'; 
const str2 = 'abc'; 
const findGCD = (str1 = '', str2 = '') => { 
  if (str1 + str2 !== str2 + str1){ 
    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