हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक स्ट्रिंग लेता है। इनपुट में दोहराए गए वर्ण अनुक्रम होते हैं या नहीं, इसके आधार पर इसे सही या गलत लौटाना चाहिए।
दी गई स्ट्रिंग की लंबाई हमेशा 1 से अधिक होती है और वर्ण अनुक्रम में कम से कम एक दोहराव होना चाहिए।
उदाहरण के लिए -
- "aa" सही लौटना चाहिए क्योंकि इसमें पूरी तरह से दो स्ट्रिंग "a" शामिल हैं
- "aaa" सही लौटना चाहिए क्योंकि इसमें पूरी तरह से तीन स्ट्रिंग "a" हैं
- "abcabcabc" सच लौटना चाहिए क्योंकि इसमें पूरी तरह से तीन तार "abc" होते हैं
- "aba" झूठी वापसी करनी चाहिए क्योंकि इसमें कम से कम दो समान सबस्ट्रिंग होने चाहिए और कुछ नहीं
- "ababa" झूठी वापसी करनी चाहिए क्योंकि "ab" दो बार मौजूद है लेकिन "a" अतिरिक्त इतना झूठा है
उदाहरण
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