1653. 使字符串平衡的最少删除次数
难度:中等
给你一个字符串 s ,它仅包含字符 'a' 和 'b' 。
你可以删除 s 中任意数目的字符,使得 s 平衡 。我们称 s 平衡的 当不存在下标对 (i,j) 满足 i < j 且 s[i] = 'b' 同时 s[j]= 'a' 。
请你返回使 s 平衡 的 最少 删除次数。
示例 1:
1 | 输入:s = "aababbab" |
示例 2:
1 | 输入:s = "bbaaaaabb" |
提示:
- $1 <= s.length <= 10^5$
s[i]要么是'a'要么是'b'。
前缀和
- 使用前缀和计算到每个
index时左边的A的数量和B的数量 - 计算每个
index处左边的A的数量和右边的B的数量,左边的A和右边的B可以组成的最大字符串就是满足条件要删除的最小字符的数量
1 | class Solution { |
动态规划
1 | class Solution { |