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

পাইথনে বাইনারি স্ট্রিংকে অল্টারনেট ০ এবং ১ দিয়ে রি-অ্যারেঞ্জ করা সম্ভব কিনা তা যাচাই করা

মান লিজিয়ে আমাদের একটি বাইনারি স্ট্রিং s আছে যার দৈর্ঘ্য ২ বা তার বেশি। আমাদের যাচাই করতে হবে s-কে এমনভাবে রি-অ্যারেঞ্জ করা সম্ভব কিনা যাতে ০ এবং ১ বদলি বদলি (alternate) আসে।

যেমন, ইনপুট যদি s = "1000111" হয়, তবে আউটপুট হবে True কারণ আমরা s-থেকে "1010101" বানাতে পারি।

সমাধানের ধাপসমূহ

  • one_count := বাইনারি স্ট্রিং s-এ ১-এর কাউন্ট
  • zero_count := বাইনারি স্ট্রিং s-এ ০-এর কাউন্ট
  • যদি s-এর সাইজ জোড় (even) হয়, তবে:
    • true রিটার্ন করুন যখন one_count zero_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
  1. পাইথনে ভেক্টর A-কে রোটেট এবং ভেক্টর C যোগ করে ভেক্টর B-তে পৌঁছানো সম্ভব কিনা তা যাচাই করা

  2. পাইথনে DFA ব্যবহার করে বাইনারি স্ট্রিং ৩ দিয়ে বিভাজ্য কিনা

  3. পাইথনে ভেরিয়েবল স্ট্রিং কিনা যাচাই করা

  4. পাইথনে স্ট্রিং কোন সাবস্ট্রিং দিয়ে শুরু হয়েছে কিনা যাচাই করা