কম্পিউটার

পাইথনে ব্লকে একটি সংখ্যার বাইনারি উপস্থাপনা 0 এবং 1 সেকে সমান আছে কিনা তা পরীক্ষা করুন


ধরুন আমাদের একটি সংখ্যার সংখ্যা আছে, আমাদের পরীক্ষা করতে হবে যে num-এর বাইনারি উপস্থাপনায় একই সংখ্যক পরপর ব্লক 0 এবং 1s আছে কিনা। আমাদের মনে রাখতে হবে যে 0 এবং সমস্ত 1s সহ একটি সংখ্যাকে 0 এবং 1s ব্লকের সংখ্যা হিসাবে বিবেচনা করা হয় না৷

সুতরাং, যদি ইনপুটটি num =455 এর মত হয়, তাহলে আউটপুটটি True হবে, কারণ এই সংখ্যাটির বাইনারি উপস্থাপনা হল 111000111।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • bin_form :=সংখ্যার বাইনারি ফর্ম
  • one_count :=একটি নতুন সেট
  • গণনা :=1
  • bin_form - 1-এর 0 থেকে বিট কাউন্টের রেঞ্জের জন্য
  • করুন
    • যদি bin_form[i] bin_form[i + 1] এর মত হয়, তাহলে
      • গণনা :=গণনা + 1
    • অন্যথায়,
      • এক_গণনায় গণনা ঢোকান
      • গণনা :=1
  • যদি one_count এর আকার 1 এর সমান হয়, তাহলে
    • সত্য ফেরান
  • মিথ্যে ফেরত দিন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ কোড

def solve(num):
   bin_form = bin(num).replace("0b", "")
   one_count = set()
   count = 1
 
   for i in range(len(bin_form)-1):
      if bin_form[i] == bin_form[i + 1]:
         count += 1
      else:
         one_count.add(count)
         count = 1
 
   if len(one_count) == 1:
      return True
   return False
 
num = 455
print(solve(num))

ইনপুট

455

আউটপুট

True

  1. বাইনারি উপস্থাপনা প্যালিনড্রোম কিনা তা পরীক্ষা করতে পাইথন প্রোগ্রাম?

  2. পাইথন প্রোগ্রাম একটি প্রদত্ত স্ট্রিং এর বাইনারি রিপ্রেজেন্টেশনে সবচেয়ে বড় ধারাবাহিক 1 এর দৈর্ঘ্য খুঁজে বের করতে।

  3. দুটি সংখ্যার বাইনারি উপস্থাপনা অ্যানাগ্রাম কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম।

  4. পাইথনে একটি স্ট্রিং অন্তত একটি অক্ষর এবং একটি সংখ্যা আছে কিনা তা কিভাবে পরীক্ষা করবেন?