একটি সংখ্যা num দেওয়া আছে। এর বাইনারি রিপ্রেজেন্টেশনে ক্রমাগত ০ এবং ১-এর ব্লক (consecutive blocks) সমান সংখ্যক আছে কিনা যাচাই করতে হবে। ০ এবং সব ১ বালা সংখ্যা বিবেচনা বাহার।
উদাহরণ
ইনপুট: num = 455
আউটপুট: True
ব্যাখ্যা: ৪৫৫-এর বাইনারি = ১১১০০০১১১, ব্লকগুলো: ১১১, ০০০, ১১১ (প্রতিটি ব্লক দৈর্ঘ্য ৩)।
সমাধান
- বাইনারি স্ট্রিং বানান (0b বাদ দিয়ে)।
- ক্রমাগত একই বিটের সংখ্যা গুনুন এবং একটি সেটে রাখুন।
- যদি সেটের সাইজ ১ হয়, তবে সব ব্লক সমান দৈর্ঘ্যের।
উদাহরণ কোড
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