ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของสตริง (เฉพาะตัวอักษรตัวพิมพ์เล็กเท่านั้น) เป็นอาร์กิวเมนต์แรกและตัวเดียว
ฟังก์ชันควรเลือกสตริงดังกล่าวสองสตริงจากอาร์เรย์ที่ไม่มีอักขระร่วมร่วมกัน และมีผลคูณสูงสุดของความยาว จากนั้นฟังก์ชันของเราควรส่งคืนผลคูณความยาวของสองสตริงดังกล่าว หากไม่มีสตริงดังกล่าวในอาร์เรย์ เราควรคืนค่า 0
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
const arr = ["karl", "n", "the", "car", "mint", "alpha"];
จากนั้นผลลัพธ์ควรเป็น −
const output = 20;
คำอธิบายผลลัพธ์:
คำว่า 'mint' และ 'alpha' ไม่มีคำทั่วไปและผลคูณของความยาวคือ 20
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = ["karl", "n", "the", "car", "mint", "alpha"]; const maxLengthProduct = (arr = []) => { const array = []; arr.forEach(str => { let curr = 0; for(let i = 0; i < str.length; i++){ curr |= 1<<(str.charCodeAt(i) - 97); }; array.push(curr); }); let res = 0; for(let i = 0 ; i < array.length; i++) { for(let j = i + 1; j < array.length ; j++) { if((array[i] & array[j]) === 0) { res = Math.max(res, arr[i].length * arr[j].length); } } } return res; }; console.log(maxLengthProduct(arr));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
20