Leetcode926.Flip String to Monotone Increasing

A binary string is monotone increasing if it consists of some number of 0's (possibly none), followed by some number of 1's (also possibly none).

You are given a binary string s. You can flip s[i] changing it from 0 to 1 or from 1 to 0.

Return the minimum number of flips to make s monotone increasing.

class Solution:
    def minFlipsMonoIncr(self, s: str) -> int:
        min_flips = flips = s.count('0')  
        # now all are 1s, find a dividing line, 
        # flip all 1 to the left of divider to 0 
        # flip all 0 to the right of divider to 1
        for c in s:
            # now c in to the left of divider, so c should flip to 1
            if c == '1':
                flips += 1
            # if c is 0,  we don't need to flip it
            # but since we have already fliped it, we minus 1
            else:
                flips -= 1
                min_flips = min(min_flips, flips)
        return min_flips

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值