हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो स्ट्रिंग्स की एक सरणी लेता है। फ़ंक्शन को सरणी के स्ट्रिंग्स के बीच सबसे लंबे समय तक असामान्य अनुक्रम का पता लगाना चाहिए।
सबसे लंबे समय तक असामान्य अनुक्रम से हमारा मतलब है कि इनमें से किसी एक तार का सबसे लंबा क्रम है और यह क्रम किसी अन्य तार के बाद का नहीं होना चाहिए।
हमारे फ़ंक्शन को इस सबसे लंबे असामान्य क्रम की लंबाई लौटानी चाहिए।
उदाहरण के लिए:यदि इनपुट ऐरे है -
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