কম্পিউটার

বাইনারি জাভাস্ক্রিপ্টে 1s-এর মধ্যে দীর্ঘতম দূরত্ব


আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি ধনাত্মক পূর্ণসংখ্যাতে, n বলুন। ফাংশনটি n-এর বাইনারি উপস্থাপনায় যেকোনো দুটি সংলগ্ন 1-এর মধ্যে দীর্ঘতম দূরত্ব খুঁজে বের করে ফেরত দিতে হবে।

যদি দুটি সন্নিহিত 1 না থাকে, তাহলে আমাদের 0 ফেরত দিতে হবে।

দুটি 1 সংলগ্ন হয় যদি শুধুমাত্র 0 থাকে তাদের আলাদা করে (সম্ভবত 0 এর নয়)। দুটি 1 এর মধ্যে দূরত্ব হল তাদের বিট অবস্থানের মধ্যে পরম পার্থক্য। উদাহরণস্বরূপ, "1001" এ দুটি 1-এর দূরত্ব 3।

যেমন −

যদি ইনপুট 22 হয়, তাহলে আউটপুট 2 হতে হবে,

কারণ,

  • 22-এর বাইনারি কোড হল 10110
  • 1 এর প্রথম সংলগ্ন জোড়াটি হল "10110" যার দূরত্ব 2।
  • 1 এর দ্বিতীয় সন্নিহিত জুটি হল "10110" যার দূরত্ব 1।
  • উত্তরটি এই দুটি দূরত্বের মধ্যে সবচেয়ে বড়, যা হল 2।

মনে রাখবেন যে "10110" একটি বৈধ জোড়া নয় কারণ দুটি 1 এর আন্ডারলাইন করা একটি 1 আলাদা করে৷

উদাহরণ

const num = 22;
const binaryGap = (num = 1) => {
   let last = -1;
   let ans = 0; // go through every bit
   for (let i = 0; i < 32; i++) {
      // check whether the bit is `1`. //
      if true, calculate the longest distance with
      // previous `1` if `1` was previously found.
      if ((num >> i) & 1 > 0) {
         if (last >= 0) {
            ans = Math.max(ans, i - last);
         }
         last = i;
      }
   }
   return ans;
};
console.log(binaryGap(num));

আউটপুট

এবং কনসোলে আউটপুট হবে −

2

  1. কীভাবে জাভাস্ক্রিপ্টে দশমিককে বাইনারিতে রূপান্তর করবেন?

  2. জাভাস্ক্রিপ্টের সাথে একটি পাঠ্যের লাইনের মধ্যে দূরত্ব কীভাবে সেট করবেন?

  3. জাভাস্ক্রিপ্টে বাইনারি সার্চ ট্রি

  4. জাভাস্ক্রিপ্টে বাইনারি ট্রি