মান লিজিয়ে আমাদের একটি বাইনারি স্ট্রিং s আছে যার দৈর্ঘ্য ২ বা তার বেশি। আমাদের যাচাই করতে হবে s-কে এমনভাবে রি-অ্যারেঞ্জ করা সম্ভব কিনা যাতে ০ এবং ১ বদলি বদলি (alternate) আসে।
যেমন, ইনপুট যদি s = "1000111" হয়, তবে আউটপুট হবে True কারণ আমরা s-থেকে "1010101" বানাতে পারি।
সমাধানের ধাপসমূহ
one_count :=বাইনারি স্ট্রিংs-এ ১-এর কাউন্টzero_count :=বাইনারি স্ট্রিংs-এ ০-এর কাউন্ট- যদি
s-এর সাইজ জোড় (even) হয়, তবে:trueরিটার্ন করুন যখনone_countzero_countসমান, অন্যথায়false
trueরিটার্ন করুন যখন|one_count - zero_count|১ সমান, অন্যথায়false
উদাহরণ
বेहतर বোঝার জন্য নিচের বাস্তবায়নটি দেখুন:
def solve(s):
one_count = s.count('1')
zero_count = s.count('0')
if len(s) % 2 == 0:
return (one_count == zero_count)
return abs(one_count - zero_count) == 1
s = "1000111"
print(solve(s))
ইনপুট
"1000111"
আউটপুট
True