1758. Minimum Changes to Make Alternating Binary String

1758. Minimum Changes To Make Alternating Binary String #

题目 #

  • 给你一个仅由字符 '0''1' 组成的字符串 s 。一步操作中,你可以将任一 '0' 变成 '1' ,或者将 '1' 变成 '0'
  • 交替字符串 定义为:如果字符串中不存在相邻两个字符相等的情况,那么该字符串就是交替字符串。例如,字符串 "010" 是交替字符串,而字符串 "0100" 不是。
  • 返回使 s 变成 交替字符串 所需的 最少 操作数。

思路 #

模拟 #

代码 #

模拟 #

class Solution {
    public int minOperations(String s) {
        char[] arr = s.toCharArray();
        int zeroStart = 0, oneStart = 0;
        for (int i = 0; i < arr.length; i++) {
            switch (i % 2) {
                case 0:
                    if (arr[i] != '0') zeroStart += 1;
                    if (arr[i] != '1') oneStart += 1;
                    break;
                case 1:
                    if (arr[i] != '1') zeroStart += 1;
                    if (arr[i] != '0') oneStart += 1;
            }
        }
        return Math.min(zeroStart, oneStart);
    }
}

致谢 #

宫水三叶