কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে স্ট্রিং সম্পূর্ণ রিপিটিং সাবস্ট্রিং দিয়ে বানানো হয়েছে কিনা যাচাই


সমস্যা বিবরণ

একটি স্ট্রিং দেওয়া আছে। এটি কি কোনো সাবস্ট্রিং রিপিট করে বनेেছে (কমপ্লিটলি) তা চেক করতে হবে। সাবস্ট্রিং কমপক্ষে একবার রিপিট হতে হবে।

উদাহরণ:

  • "aa" → true ("a" x2)
  • "aaa" → true ("a" x3)
  • "abcabcabc" → true ("abc" x3)
  • "aba" → false
  • "ababa" → 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'));        // true
console.log(checkCombination('aaa'));       // true
console.log(checkCombination('abcabcabc')); // true
console.log(checkCombination('aba'));       // false
console.log(checkCombination('ababa'));     // false

আউটপুট

true true true false false

ব্যাখ্যা

  • সম্ভাব্য সাবস্ট্রিং লেন্থ: ১ থেকে length/2 পর্যন্ত।
  • লেন্থ স্ট্রিং লেন্থ দিয়ে বিভাজ্য হতে হবে।
  • রিকার্সিভলি চেক করা হয় পুরো স্ট্রিং সাবস্ট্রিং রিপিট করে বনা কিনা।
  1. জাভাস্ক্রিপ্টে ইউজার ইনপুট স্ট্রিং অ্যারেতে আছে কিনা চেক করা

  2. জাভাস্ক্রিপ্টে স্ট্রিং কি রিপিটেড সাবস্ট্রিংয়ের কম্বিনেশন সেটি চেক করা

  3. জাভাস্ক্রিপ্টে একই স্ট্রিং অক্ষরগুলোকে নির্দিষ্ট দূরত্বে রাখা

  4. জাভাস্ক্রিপ্টে টাইম স্ট্রিং রেক্টিফাই করা (HH:MM:SS)