हमारे पास एक स्ट्रिंग है जिसमें कुछ दोहराए गए अक्षर हैं:
const a = "fdsfjngjkdsfhhhhhhhhhhhfsdfsd";
हमारा काम एक फ़ंक्शन लिखना है जो एक पंक्ति में अधिकतम लगातार समान अक्षरों की संख्या लौटाता है। जैसे उपरोक्त स्ट्रिंग में अक्षर h लगातार 11 बार आता है, इसलिए हमारा फ़ंक्शन इस स्ट्रिंग के लिए 11 लौटाना चाहिए।
यह समस्या स्लाइडिंग विंडो एल्गोरिदम के लिए एक अच्छा उम्मीदवार है, यहाँ एक स्थिर विंडो वह होगी जिसमें लगातार अक्षर हों और जिसमें अलग-अलग तत्व हों वह अस्थिर है। विंडो अंत में नए अक्षर जोड़कर और शुरुआत में दोहराव वाले अक्षरों को हटाकर स्थिर होती है।
स्लाइडिंग विंडो एल्गोरिदम का उपयोग करने वाले इस फ़ंक्शन का कोड होगा:
उदाहरण
const a = "fdsfjngjkdsfhhhhhhhhhhhfsdfsd";
const findMaximumRepeating = str => {
let max = 0;
for (let start = 0, end = 1; end < str.length; ) {
if (str[end] === str[start]) {
if (max < end - start + 1) {
max = end - start + 1;
}
end++;
} else {
start = end;
}
}
return max;
};
console.log(findMaximumRepeating(a));
आउटपुट
कंसोल में आउटपुट होगा:
11