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