ধরুন আমাদের একটি স্ট্রিং 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