SOURCE

str = '10'
let left = 0,right = 1;
let res = 0;
//统计下1和0的个数
let count_one = 0,count_zero = 0;
for(let i =0;i < str.length;i++) {
    if(str[i] == '0') count_zero++;
    else count_one++;
}
//如果1的数量比0多,则需要从1开始
if(count_one > count_zero && str[0] != '1'){
    let index = str.indexOf('1');
    [str[0],str[index]] = [str[index],str[0]];
    res += index;
}
//如果0的数量比1多,则需要从0开始
if(count_one < count_zero && str[0] != '0'){
    let index = str.indexOf('0');
    [str[0],str[index]] = [str[index],str[0]];
    res += index;
}
left = 1,right = 2;
while(right < str.length) {
    while(right < str.length && str[right] == str[left]) {
        right += 1;
    }
    if(right >= str.length) {
        break;
    }
    res += right-left-1;
    [str[left+1],str[right]] = [str[right],str[left+1]];
    left += 1;
    right = left;
}
console.log(res);
console 命令行工具 X clear

                    
>
console