Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

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


Chúng ta cần viết một hàm JavaScript nhận một mảng chuỗi. Hàm sẽ tìm chuỗi con không phổ biến dài nhất trong các chuỗi của mảng.

Bằng chuỗi con không phổ biến dài nhất, chúng ta hiểu là chuỗi con dài nhất của một trong các chuỗi này và chuỗi con này không được là bất kỳ chuỗi con nào của các chuỗi khác.

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

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

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

Thì đầu ra nên là 3.

Ví dụ

Mã thực hiện:

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

Kết quả

Kết quả trong console:

3