समस्या
मान लीजिए हमारे पास एक स्ट्रिंग S, str है, जो स्ट्रिंग का अनंत रैप-अराउंड स्ट्रिंग है:
"abcdefghijklmnopqrstuvwxyz".
इसलिए, S इस तरह दिखेगा:
"...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....".
हमें एक JavaScript फ़ंक्शन लिखना है जो str को, आइए उस स्ट्रिंग को str कहते हैं, एकमात्र आर्ग्युमेंट के रूप में लेता है।
हमारे फ़ंक्शन को यह पता लगाना चाहिए कि
strके कितने अद्वितीय गैर-खाली सबस्ट्रिंग S में मौजूद हैं।हमारे फ़ंक्शन को अंततः स्ट्रिंग S में
strके विभिन्न गैर-खाली सबस्ट्रिंग की संख्या वापस करनी चाहिए।
उदाहरण
यदि फ़ंक्शन का इनपुट है:
const str = "zab";
तो आउटपुट होना चाहिए:
const output = 6;
आउटपुट व्याख्या
स्ट्रिंग "zab" के छह सबस्ट्रिंग "z", "a", "b", "za", "ab", "zab" स्ट्रिंग S में हैं।
कोड
const str = "zab"; const allSubstrings = (str = '') => { const dp = new Array(26).fill(0); dp[str.charCodeAt(0) - 97] = 1; maxCount = 1; for (let i = 1; i < str.length; i++) { if ((str.charCodeAt(i) - str.charCodeAt(i - 1) == 1) || (str.charCodeAt(i) - str.charCodeAt(i - 1) == -25)) { maxCount++; } else { maxCount = 1; } dp[str.charCodeAt(i) - 97] = Math.max(dp[str.charCodeAt(i) - 97], maxCount); } return dp.reduce((item, val) => { return val + item; }) }; console.log(allSubstrings(str));आउटपुट
कंसोल में आउटपुट होगा:
6