递增字符串
题目描述
定义字符串完全由 A 和 B组成,当然也可以全是A或全是B。
如果字符串从前往后都是以字典序排列的,那么我们称之为严格递增字符串。
给出一个字符串 s,允许修改字符串中的任意字符,即可以将任何的A修改成B,也可以将任何的B修改成A,求可以使s满足严格递增的最小修改次数。
0 < s的长度 < 100000。
输入描述
输入一个字符串: AABBA
输出描述
输出:1
修改最后一位得到AABBB。
示例一
输入
AABBA
输出
1
思路解析和复杂度分析
解题思路:
遍历整个字符串s,同时统计A和B的数量。
对于每个字符,如果是A,则增加A的计数;如果是B,则增加B的计数。
在遍历过程中,计算使得当前字符串变成严格递增的最小修改次数。我们可以维护一个变量ans来记录当前的最小修改次数。对于每个字符,我们有两种选择:要么修改这个字符,要么不修改。这两种选择分别对应的修改次数为:当前字符为B时,ans加1&#