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

পাইথনে বাইনারি রিপ্রেজেন্টেশনে ০ এবং ১-এর ব্লক সমান সংখ্যক আছে কিনা

একটি সংখ্যা num দেওয়া আছে। এর বাইনারি রিপ্রেজেন্টেশনে ক্রমাগত ০ এবং ১-এর ব্লক (consecutive blocks) সমান সংখ্যক আছে কিনা যাচাই করতে হবে। ০ এবং সব ১ বালা সংখ্যা বিবেচনা বাহার।

উদাহরণ

ইনপুট: num = 455

আউটপুট: True

ব্যাখ্যা: ৪৫৫-এর বাইনারি = ১১১০০০১১১, ব্লকগুলো: ১১১, ০০০, ১১১ (প্রতিটি ব্লক দৈর্ঘ্য ৩)।

সমাধান

  1. বাইনারি স্ট্রিং বানান (0b বাদ দিয়ে)।
  2. ক্রমাগত একই বিটের সংখ্যা গুনুন এবং একটি সেটে রাখুন।
  3. যদি সেটের সাইজ ১ হয়, তবে সব ব্লক সমান দৈর্ঘ্যের।

উদাহরণ কোড

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))  # Output: True

ইনপুট

455

আউটপুট

True
  1. পাইথনে বাইনারি রিপ্রেজেন্টেশন প্যালিনড্রোম কিনা যাচাই করার প্রোগ্রাম

  2. পাইথনে বাইনারি রিপ্রেজেন্টেশনে সর্বোচ্চ συνεχে ১-এর দৈর্ঘ্য বের করার প্রোগ্রাম

  3. পাইথনে দুটি সংখ্যার বাইনারি রিপ্রেজেন্টেশন অনুগ্রাম (anagram) কিনা যাচাই করা

  4. পাইথনে স্ট্রিং-এ কমপক্ষে একটি অক্ষর ও একটি সংখ্যা আছে কিনা যাচাই করা