926. 将字符串翻转到单调递增

exiaohu 于 2022-06-11 发布

题目链接:926. 将字符串翻转到单调递增

就是找到一个位置,在这个位置之前的全为 $0$,之后全为 $1$。

class Solution:
    def minFlipsMonoIncr(self, s: str) -> int:
        n1 = sum(1 if ss == '1' else 0 for ss in s)
        n0 = len(s) - n1

        if n1 == 0 or n0 == 0:
            return 0

        cn0, cn1, ans = 0, 0, n0
        for ss in s:
            if ss == '1':
                cn1 += 1
            else:
                cn0 += 1

            ans = min(ans, cn1 + (n0 - cn0))

        return ans