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

ผลิตภัณฑ์ความยาวสูงสุดของคำที่ไม่ซ้ำใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน 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