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

ค้นหาลำดับที่ผิดปกติที่ยาวที่สุดใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของสตริง ฟังก์ชันควรค้นหาลำดับย่อยที่ไม่ธรรมดาที่ยาวที่สุดในบรรดาสตริงของอาร์เรย์

โดยลำดับย่อยที่ไม่ธรรมดาที่ยาวที่สุด เราหมายถึงลำดับย่อยที่ยาวที่สุดของหนึ่งในสตริงเหล่านี้ และลำดับรองนี้ไม่ควรเป็นผลสืบเนื่องใดๆ ของสตริงอื่นๆ

ฟังก์ชันของเราควรส่งคืนความยาวของลำดับย่อยที่ไม่ธรรมดาที่ยาวที่สุดนี้

ตัวอย่างเช่น หากอาร์เรย์อินพุตเป็น −

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

จากนั้นผลลัพธ์ควรเป็น 3

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

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

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

3