2023华为OD机试真题-递增字符串(JAVA、Python、C++)

题目描述:
定义字符串完全由 'A' 和 'B'组成,当然也可以全是'A'或全是'B'。如果字符串从前往后都是以字典序排列的,那么我们称之为严格递增字符串。
给出一个字符串s,允许修改字符串中的任意字符,即可以将任何的'A'修改成'B',也可以将任何的'B'修改成'A',求可以使s满足严格递增的最小修改次数。0 输入描述:
输入一个字符串: "AABBA"
输出描述:
输出:1 
修改最后一位得到AABBB。
补充说明:
 收起
示例1
输入:
AABBA
输出:
1
 

#include 
using namespace std;
int main(){
    string s;
    cin >> s;
    if(s.size() == 0 || s.size() == 1){
        cout << 0;
        return 0;
    }
    int countA = 0,countB = 0;
    for(int i = 0; i=l){
        while(s[l]=='A'){
            l++;
            countA--;
        }
        while(s[r] == 'B'){
            r--;
            countB--;
        }
        if(r=countB){
            s[l] = 'A';
            l++;
            count++;
            
        }
        else{
            s[r] = 'B';
            r--;
            count++;
        }
    }
    cout << count;
    return 0;
}

你可能感兴趣的:(华为OD机试真题2023,java,c++,python,算法,华为)