समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो अक्षरों की स्ट्रिंग को एकमात्र आर्ग्युमेंट के रूप में लेता है। हमारे फ़ंक्शन को यह जांचना होगा कि क्या स्ट्रिंग str को उसका एक सबस्ट्रिंग लेकर और उस सबस्ट्रिंग की कई प्रतियों को एक साथ जोड़कर बनाया जा सकता है।
उदाहरण
यदि फ़ंक्शन का इनपुट है:
const str = 'thisthisthisthis';
तो आउटपुट होना चाहिए:
const output = true;
आउटपुट व्याख्या:
क्योंकि स्ट्रिंग 'this' स्ट्रिंग को बार-बार जोड़कर बनाई गई है।
कोड
const str = 'thisthisthisthis'; const repeatedSubstring = (str = '') => { const {length} = str; const checkSubString = ss => { const m = ss.length; for (let i = 0; i < length; i += m) for (let j = 0; j < m; j++) if (str[i+j] !== ss[j]) return false; return true; }; let factor = 2, len; while (length/factor >= 1){ while (length % factor) factor++; len = length/factor; if (checkSubString(str.substring(0,len))){ return true; }; factor++; }; return false; }; console.log(repeatedSubstring(str));कोड व्याख्या:
सबसे पहले, हमने सबस्ट्रिंग पैटर्न जांच फ़ंक्शन सेट किया।
फिर हमने उन सभी संभावित कारकों के माध्यम से पुनरावृति की जो स्ट्रिंग str को समान रूप से विभाजित करते हैं, यह निर्धारित करने के लिए कि क्या एक व्यवहार्य दोहराव पैटर्न मिला है।
आउटपुट
कंसोल में आउटपुट होगा:
true