কম্পিউটার

পাইথনে y এর আগে সমস্ত x তৈরি করতে প্রয়োজনীয় ফ্লিপিংয়ের সংখ্যা গণনা করার প্রোগ্রাম


ধরুন আমাদের কাছে x এবং y অক্ষর সহ একটি ছোট হাতের স্ট্রিং s আছে। এখন এমন একটি ক্রিয়াকলাপ বিবেচনা করুন যেখানে আমরা একটি একক x থেকে y বা এর বিপরীতে পরিবর্তন করি। সমস্ত x-এর আগে সমস্ত y-এর আগে সেট করার জন্য আমাদের সেই অপারেশনটি সম্পাদন করতে ন্যূনতম কতবার প্রয়োজন তা খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুট s ="yxyyyyxyxx" এর মত হয়, তাহলে আউটপুট হবে 4।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • y_left :=0

  • x_right :=s তে "x" এর সংখ্যা, res :=s তে "x" এর সংখ্যা

  • প্রতিটি আইটেমের জন্য s, করুন

    • যদি আইটেমটি "x" এর মতো হয়, তাহলে

      • x_right :=x_right − 1

    • অন্যথায়,

      • y_left :=y_left + 1

    • res :=ন্যূনতম res এবং (y_left + x_right)

  • রিটার্ন রিটার্ন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class Solution:
   def solve(self, s):
      y_left = 0
      x_right = res = s.count("x")
      for item in s:
         if item == "x":
            x_right -= 1
         else:
            y_left += 1
         res = min(res, y_left + x_right)
      return res
ob = Solution()
s = "yxyyyyxyxx"
print(ob.solve(s))

ইনপুট

"yxyyyyxyxx"

আউটপুট

4

  1. পাইথনে সম্ভাব্য নম্র ম্যাট্রিক্সের সংখ্যা গণনা করার প্রোগ্রাম

  2. পাইথনে একই স্ট্রিংকে দুবার সংযোজন হিসাবে স্ট্রিং তৈরি করার জন্য প্রয়োজনীয় অপারেশনের সংখ্যা গণনা করার প্রোগ্রাম

  3. পাইথনে s-এ স্বতন্ত্র সাবস্ট্রিংয়ের সংখ্যা গণনা করার জন্য প্রোগ্রাম

  4. পাইথনে n নোড সহ BST সংখ্যা গণনা করার প্রোগ্রাম