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

Tìm chuỗi dài nhất không phổ biến trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript sử dụng một mảng chuỗi. Hàm sẽ tìm dãy con dài nhất không phổ biến trong số các chuỗi của mảng.

Theo dãy con dài nhất không phổ biến, chúng tôi muốn nói đến dãy con dài nhất của một trong các chuỗi này và dãy con này không được là bất kỳ dãy con nào của các chuỗi khác.

Hàm của chúng ta sẽ trả về độ dài của dãy con dài nhất không phổ biến này.

Ví dụ:Nếu mảng đầu vào là -

const arr = ["aba", "cdc", "eae"];

Sau đó, đầu ra phải là 3.

Ví dụ

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

const arr = ["aba", "cdc", "eae"];
const findUncommonLength = (array = []) => {
   const seen = {};
   const arr = [];
   let max = −1;
   let index = −1;
   for(let i = 0; i < array.length; i++){
      seen[array[i]] = (seen[array[i]] || 0) + 1;
      if(seen[array[i]] > 1){
         if(max < array[i].length){
            max = array[i].length
            index = i;
         }
      }
   };
   if(index === −1) {
      array.forEach(el =>{
         if(el.length > max) max = el.length;
      })
      return max;
   };
   for(let i = 0; i < array.length; i++){
      if(seen[array[i]] === 1) arr.push(array[i]);
   };
   max = −1;
   for(let i = arr.length − 1; i >= 0; i−−){
      let l = arr[i];
      let d = 0;
      for(let j = 0; j < array[index].length; j++){
         if(array[index][j] === l[d]){
            d++;
         }
      }
      if(d === l.length){
         let temp = arr[i];
         arr[i] = arr[arr.length − 1];
         arr[arr.length − 1] = temp;
         arr.pop();
      }
   };
   arr.forEach(el =>{
      if(el.length > max) max = el.length;
   });
   return max;
};
console.log(findUncommonLength(arr));

Đầu ra

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

3