在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的最小值
- 如果c与“ A”相同,则
-
返回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