Computer >> Máy Tính >  >> Lập trình >> Javascript

Tích độ dài tối đa của các từ duy nhất trong JavaScript

Vấn đề

Chúng tôi bắt buộc phải viết một hàm JavaScript lấy một mảng chuỗi (chỉ các bảng chữ cái viết thường) làm đối số đầu tiên và duy nhất.

Hàm nên chọn hai chuỗi như vậy từ mảng không có ký tự chung nào và có tích số chiều dài tối đa của chúng. Và sau đó hàm của chúng ta sẽ trả về tích độ dài của hai chuỗi như vậy. Nếu không tồn tại chuỗi nào như vậy trong mảng, chúng ta nên trả về 0.

Ví dụ:nếu đầu vào của hàm là -

const arr = ["karl", "n", "the", "car", "mint", "alpha"];

Sau đó, kết quả đầu ra phải là -

const output = 20;

Giải thích đầu ra:

Các từ ‘bạc hà’ và ‘alpha’ không có từ chung nào và tích độ dài của chúng là 20.

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

20