हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो पहले तर्क के रूप में एक स्ट्रिंग लेता है और दूसरे तर्क के रूप में एक सकारात्मक पूर्णांक n लेता है।
स्ट्रिंग में कुछ दोहराए जाने वाले वर्ण होने की संभावना है। फ़ंक्शन को मूल स्ट्रिंग से सबसे लंबे सबस्ट्रिंग की लंबाई का पता लगाना चाहिए और वापस करना चाहिए जिसमें सभी वर्ण कम से कम n बार दिखाई देते हैं।
उदाहरण के लिए -
यदि इनपुट स्ट्रिंग और संख्या हैं -
const str = 'kdkddj'; const num = 2;
तब आउटपुट होना चाहिए -
const output = 5;
क्योंकि वांछित सबसे लंबा सबस्ट्रिंग 'kdkdd' है
उदाहरण
निम्नलिखित कोड है -
const str = 'kdkddj'; const num = 2; const longestSubstring = (str = '', num) => { if(str.length < num){ return 0 }; const map = {} for(let char of str) { if(char in map){ map[char] += 1; }else{ map[char] = 1; } } const minChar = Object.keys(map).reduce((minKey, key) => map[key] < map[minKey] ? key : minKey) if(map[minChar] >= num){ return str.length; }; substrings = str.split(minChar).filter((subs) => subs.length >= num); if(substrings.length == 0){ return 0; }; let max = 0; for(ss of substrings) { max = Math.max(max, longestSubstring(ss, num)) }; return max; }; console.log(longestSubstring(str, num));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
5