কম্পিউটার

পাইথনে B-এর আগে A-কে তৈরি করতে ন্যূনতম সংখ্যক অক্ষর মুছে ফেলার জন্য প্রোগ্রাম


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

  1. পাইথনে মার্জ করার পরে ন্যূনতম সংখ্যার রঙগুলি খুঁজে বের করার প্রোগ্রামটি থাকে

  2. পাইথনে স্ট্রিং প্যালিনড্রোম তৈরি করতে প্রয়োজনীয় ন্যূনতম সংখ্যক অক্ষর পরীক্ষা করার জন্য প্রোগ্রাম

  3. পাইথনে এক নম্বর থেকে অন্য নম্বর তৈরি করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক অপারেশন খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে একটি স্ট্রিং সাবস্ট্রিং অন্যটির জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক অপারেশন খুঁজে বের করার প্রোগ্রাম