हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो दो स्ट्रिंग्स लेता है, चलो उन्हें str1 और str2 कहते हैं।
str1 का आकार str2 से बड़ा होने की गारंटी है। हमें str1 में सबसे छोटा सबस्ट्रिंग खोजने की आवश्यकता है जिसमें str2 में निहित सभी वर्ण शामिल हैं।
उदाहरण के लिए -
यदि इनपुट स्ट्रिंग्स हैं -
const str1 = 'abcdefgh'; const str2 = 'gedcf';
तब आउटपुट होना चाहिए -
const output = 'cdefg';
क्योंकि यह str1 का सबसे छोटा क्रमागत विकल्प है जिसमें str2 के सभी वर्ण शामिल हैं।
उदाहरण
निम्नलिखित कोड है -
const str1 = 'abcdefgh'; const str2 = 'gedcf'; const subIncludesAll = (str, str2) => { for (let i = 0; i < str.length; i++) { if (str2.indexOf(str[i]) !== -1) { str2 = str2.replace(str[i], ''); }; }; return (str2.length === 0); }; const minWindow = (str1 = '', str2 = '') => { let shortestString = null; for (let i = 0; i < str1.length; i++) { for (let j = i; j < str1.length; j++) { let testString = str1.substr(i, j-i+1); if (subIncludesAll(testString, str2)) { if (shortestString === null || testString.length < shortestString.length) { shortestString = testString; } } } } return shortestString; }; console.log(minWindow(str1, str2));
आउटपुट
कंसोल पर आउटपुट निम्न है -
cdefg