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

পাইথনে স্ট্রিংএ x সব y-র আগে আনতে ন্যূনতম ফ্লিপ গণনা

একটি স্ট্রিং s দেওয়া আছে যেটে শুধু 'x' এবং 'y' আছে। একটি অপারেশনে একটি 'x'-কে 'y' বা 'y'-কে 'x' বদলানো যায়। সব 'x' সব 'y'-র আগে আনার জন্য ন্যূনতম কতবার অপারেশন লাগবে তা বের করতে হবে।

উদাহরণ: s = "yxyyyyxyxx" → আউটপুট 4।

সমাধানের ধাপসমূহ (গ্রিডি / প্রিফিক্স কাউন্ট)

  1. y_left := 0 (বাম পাশে কতটি 'y' আছে)।

  2. x_right := s.count('x') (ডান পাশে কতটি 'x' আছে), res := x_right।

  3. প্রতিটি ক্যারেক্টার item ∈ s এর জন্য:

    • যদি item == 'x', তবে x_right--।

    • অন্যথায় y_left++।

    • res = min(res, y_left + x_right) আপডেট করুন।

  4. res রিটার্ন করুন।

পাইথন কোড উদাহরণ

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. পাইথনে স্ট্রিং-এর সকল ভিন্ন উপস্ট্রিংয়ের সংখ্যা বের করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম - n নোড দিয়ে BST-এর সংখ্যা বের করুন