আমাকে একটি ফাংশন তৈরি করতে হবে যা একটি স্ট্রিং নেয় এবং এটি ফিরে আসবে true
বা false
ইনপুটটিতে পুনরাবৃত্ত অক্ষর ক্রম থাকে কিনা তার উপর ভিত্তি করে। প্রদত্ত স্ট্রিংয়ের দৈর্ঘ্য সর্বদা এর চেয়ে বেশি 1
এবং চরিত্রের ক্রমের কমপক্ষে একটি পুনরাবৃত্তি থাকতে হবে।
"aa" // true(entirely contains two strings "a")
"aaa" //true(entirely contains three string "a")
"abcabcabc" //true(entirely containas three strings "abc")
"aba" //false(At least there should be two same substrings and nothing more)
"ababa" //false("ab" exists twice but "a" is extra so false)
আমি নীচের ফাংশন তৈরি করেছি:
function check(str){
if(!(str.length && str.length - 1)) return false;
let temp = '';
for(let i = 0;i<=str.length/2;i++){
temp += str[i]
//console.log(str.replace(new RegExp(temp,"g"),''))
if(!str.replace(new RegExp(temp,"g"),'')) return true;
}
return false;
}
console.log(check('aa')) //true
console.log(check('aaa')) //true
console.log(check('abcabcabc')) //true
console.log(check('aba')) //false
console.log(check('ababa')) //false
এটি যাচাই করা আসল সমস্যার একটি অংশ। আমি এর মতো একটি অ দক্ষ দক্ষতা বহন করতে পারি না। প্রথমত, এটি স্ট্রিংয়ের অর্ধেকটি লুপ করছে ing
দ্বিতীয় সমস্যাটি হ'ল এটি replace()
প্রতিটি লুপে ব্যবহার করছে যা এটি ধীর করে দেয়। পারফরম্যান্স সম্পর্কে আরও ভাল সমাধান আছে?