हमें एक JavaScript फ़ंक्शन लिखना है जो एक स्ट्रिंग लेता है। यह true या false लौटाना चाहिए आधार पर कि इनपुट एक रिपीटेड कैरेक्टर सीक्वेंस से बना है या नहीं।
दी गई स्ट्रिंग की लंबाई हमेशा 1 से अधिक होती है और कैरेक्टर सीक्वेंस में कम से कम एक रिपीटिशन होना चाहिए।
उदाहरण के लिए:
- "aa" को true लौटाना चाहिए क्योंकि इसमें पूरी तरह से दो स्ट्रिंग्स "a" हैं
- "aaa" को true लौटाना चाहिए क्योंकि इसमें पूरी तरह से तीन स्ट्रिंग्स "a" हैं
- "abcabcabc" को true लौटाना चाहिए क्योंकि इसमें पूरी तरह से तीन स्ट्रिंग्स "abc" हैं
- "aba" को false लौटाना चाहिए क्योंकि कम से कम दो समान सबस्ट्रिंग्स और कुछ नहीं होना चाहिए
- "ababa" को false लौटाना चाहिए क्योंकि "ab" दो बार मौजूद है लेकिन "a" एक्स्ट्रा है इसलिए false
उदाहरण
const checkCombination = (str = '') => { if( str.length==1 ) { return true; }; for(let i = 1; i <= str.length / 2; i++){ if(str.length % i !== 0){ continue; } const sub = str.substring(0, i); if(isRepeating(sub, str)){ return true; }; }; return false; } const isRepeating = (sub, str) => { if(str.length > sub.length){ let left = str.substring(0,sub.length); let right = str.substring(sub.length, str.length); return left===sub && isRepeating(sub,right); }; return str === sub; } console.log(checkCombination('aa')); console.log(checkCombination('aaa')); console.log(checkCombination('abcabcabc')); console.log(checkCombination('aba')); console.log(checkCombination('ababa'));आउटपुट
इससे निम्नलिखित आउटपुट प्राप्त होगा:
true true true false false