Basically there are only 2 ways to make a string alternating. For example, given a string with length 5, the target string should be either 10101 or 01010.
One improvement of this problem comes from the fact that 2 different numbers of changes can sum up to the length of the string. So we only need to calculate one of them.
class Solution: def minOperations(self, s): odd = False count = 0 for c in s: if c != ("1" if odd else "0"): count += 1 odd = not odd return min(len(s) - count, count)