要么是以0开头 要么以1开头 选择最小的答案累加
import java.util.Scanner;
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNext()) {// 注意 while 处理多个 case// in.nextLine();String s = in.nextLine();//一种是以1开头的子串 一种是以0开头的子串 求最小值求和// System.out.println(s);long res=0;for(int i=0;i<s.length()-1;i++){long res0=0;long res1=0;for(int j=i;j<s.length();j++){//偶数位 0开头为1 1开头为0if((j+1-i)%2==0){if(s.charAt(j)=='1'){res1++;}else if(s.charAt(j)=='0'){res0++;}}else if((j+1-i)%2==1){if(s.charAt(j)=='1'){res0++;}else if(s.charAt(j)=='0'){res1++;}}// System.out.println(res0);// System.out.println(res1);res+=Math.min(res0,res1);}}System.out.println(res);}}
}