题目:
递增字符串
题目描述:
定义字符串完全由“A”和B”组成,当然也可以全是“A或全是”B。如果字符串从前往后都是以字典序排列的,那么我们称之为严格递增字符串。 给出一个字符串s,允许修改字符串中的任意字符,即可以将任何的'A“修改成”B”,也可以将任何的"B“修改成”A”,求可以使s满足严格递增的最小修改次数。 0<s的长度<100000.
输入描述:
输入一个宁符串:“AABBA” 输出描述: 输出:1 修改最后一位得到AABBB 示例1 输入: AABBA 输出: 1
public class Demo15 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
// 如果全是A,或者全是B,修改次数为0
if((str.contains("A") && !str.contains("B")) || (!str.contains("A") && str.contains("B"))) {
System.out.println(0);
}
// 如果有A也有B, 找到第一个B的位置,然后查找第一个B索引后面有多少个A和B,判断A,B出现次数,取小
if(str.contains("A") && str.contains("B")) {
int countA = 0;
int countB = 0;
int b = str.indexOf('B');
for(int i = b + 1; i < str.length(); i++) {
char c = str.charAt(i);
if (c == 'A') {
countA++;
}
if (c == 'B') {
countB++;
}
}
System.out.println(Math.min(countA, countB + 1));
}
}
}