题目链接: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