ধরুন আমাদের কাছে 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