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

Python দিয়ে বাইনারি স্ট্রিং ব্যবহার করে বল্ব সুইচার বানানোর প্রোগ্রাম


মান লাগিয়ে, আমাদের nটি বল্ব আছে একটি রুমে, যেগুলো 0 থেকে n-1 পর্যন্ত নম্বর দেওয়া আছে। আমাদের সেগুলো বাম থেকে ডানে এক সারিয়ে সাজাতে হবে। শুরুতে সব বল্ব অফ আছে (0-স্টেট)। আমাদের টার্গেট অ্যারে 't' দিয়ে কনফিগারেশন বানাতে হবে যেখানে t[i] = '1' মানে i-তম বল্ব অন, '0' মানে অফ। আমাদের একটি সুইচ আছে বল্বের স্টেট ফ্লিপ করার জন্য। ফ্লিপ অপারেশন নিচের মতো:

  • যেকোনো বল্ব ইন্ডেক্স i সিলেক্ট করুন।
  • i থেকে n-1 ইনডেক্স পর্যন্ত সব বল্ব ফ্লিপ করুন।

আমাদের টার্গেট বানাতে মিনিমাম কত ফ্লিপ লাগবে তা বের করতে হবে।

যেমন, ইনপুট t = "0101" হলে, আউটপুট হবে 3, যদি দ্বিতীয় বল্ব থেকে শুরু করি, তবে কনফিগারেশন হবে "0111", তারপর তৃতীয় থেকে "0100", তারপর শেষ বল্ব ফ্লিপ করে "0101" বানাবে।

এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব:

  • count := 0
  • x := '0'
  • t-এ থাকা প্রতিটি i জন্য:
    • যদি i != x হয়, তবে count := count + 1, x := i
  • count রিটার্ন করুন

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন:

উদাহরণ

def solve(t):
    count = 0
    x = '0'
    for i in t:
        if i != x:
            count += 1
            x = i
    return count
t = "0101"
print(solve(t))

ইনপুট

"0101"

আউটপুট

3

  1. Python দিয়ে ত্রুটিপূর্ণ বাইনারি ট্রি ঠিক করার প্রোগ্রাম

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

  3. পাইথনে bin() ফাংশন ব্যবহার করে বাইনারি রূপান্তর

  4. পাইথনে % ব্যবহার করে স্ট্রিং ফরম্যাটিং