在Python中查找A出现在B之前的最小字符数的程序

在Python中查找A出现在B之前的最小字符数的程序

假设我们有一个字符串s,它仅包含两个字母A和B,我们必须找到需要从s中删除的最少字母数量,以便在所有B出现之前得到所有A出现。

所以,如果输入是S =“AABAABB”,则输出将为1,因为我们可以删除最后一个A以获得AABBB。

为了解决这个问题,我们将遵循以下步骤:

  • a_right := s中“ A”的出现次数

  • b_left := 0

  • ans : = a_right

  • 对于s中的每个索引i和字符c,执行以下操作:

    • 如果c与“ A”相同,则
      • a_right := a_right-1
    • 否则,
      • b_left := b_left + 1
    • ans : = ans和a_right + b_left的最小值

  • 返回ans

以下是具体实现,以便更好地理解:

示例

@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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程