ধরুন আমাদের একটি স্ট্রিং s আছে যেখানে কেবল দুটি অক্ষর A এবং B রয়েছে, আমাদের ন্যূনতম সংখ্যক অক্ষরগুলি খুঁজে বের করতে হবে যা s থেকে মুছে ফেলতে হবে যাতে Bs এর সমস্ত ঘটনার আগে As এর সমস্ত উপস্থিতি পেতে হয়।
সুতরাং, যদি ইনপুটটি S ="AABAABB" এর মত হয়, তাহলে আউটপুট হবে 1, যেহেতু আমরা AABBB পেতে শেষ A সরিয়ে দিতে পারি
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:
-
a_right :=s
এ "A" এর সংঘটনের সংখ্যা -
b_left :=0
-
উত্তর :=a_right
-
প্রতিটি সূচক i এবং অক্ষর c এর জন্য s, do
-
যদি c "A" এর মত হয়, তাহলে
-
a_right :=a_right - 1
-
-
অন্যথায়,
-
b_left :=b_left + 1
-
-
ans :=সর্বনিম্ন উত্তর এবং a_right + b_left
-
-
উত্তর ফেরত দিন
আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:
উদাহরণ
class Solution: def solve(self, s): a_right = s.count("A") b_left = 0 ans = a_right for i, c in enumerate(s): if c == "A": a_right -= 1 else: b_left += 1 ans = min(ans, a_right + b_left) return ans ob = Solution() S = "AABAABB" print(ob.solve(S))
ইনপুট
"AABAABB"
আউটপুট
1