首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Leetcode 1702. Maximum Binary String After Change

Leetcode 1702. Maximum Binary String After Change

作者头像
Tyan
发布2021-07-23 16:21:22
发布2021-07-23 16:21:22
3710
举报
文章被收录于专栏:SnailTyanSnailTyan

1. Description

2. Solution

**解析:**Version 1,先找到第一个0,然后找到其后的第一个1,从这里开始,每碰到一个0就将其置为11之后的数字对应的置为0,相当于互换二者位置,这样让所有的0集中在一起,然后执行第一条规则。Version 2,根据规则可知,第一个0后面的零都应该跟其相连,即其后的数字顺序应按照01的顺序排序,然后将执行第一条规则。Version 3根据规则可知,如果字符串中的0少于两个,则字符串没变化,0多于1个时,最终结果只有1个0,且其位置应该位于第一个0之后的第count位,count为字符串中0的总数。

  • Version 1
代码语言:javascript
复制
class Solution:
    def maximumBinaryString(self, binary: str) -> str:
        digits = list(binary)
        n = len(digits)
        i = 0
        while i < n and digits[i] != '0':
            i += 1
        m = i
        while i < n and digits[i] != '1':
            i += 1
        k = i
        for j in range(i, n):
            if digits[j] == '0':
                digits[j] = '1'
                digits[k] = '0'
                k += 1
        i = m
        while i < n - 1 and digits[i] == '0' and digits[i+1] == '0':
            digits[i] = '1'
            i += 1
        ans = ''.join(digits)
        return ans
  • Version 2
代码语言:javascript
复制
class Solution:
    def maximumBinaryString(self, binary: str) -> str:
        digits = list(binary)
        n = len(digits)
        i = 0
        while i < n and digits[i] != '0':
            i += 1
        digits = digits[:i] + sorted(digits[i:])
        i = 0 
        while i < n - 1:
            if digits[i] == '0' and digits[i+1] == '0':
                digits[i] = '1'
            i += 1

        ans = ''.join(digits)
        return ans
  • Version 3
代码语言:javascript
复制
class Solution:
    def maximumBinaryString(self, binary: str) -> str:
        digits = ['1'] * len(binary)
        count = binary.count('0')
        if count <= 1:
            return binary
        n = len(digits)
        i = 0
        while i < n and binary[i] != '0':
            i += 1
        digits[i+count-1] = '0'
        ans = ''.join(digits)
        return ans

Reference

  1. https://leetcode.com/problems/maximum-binary-string-after-change/
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/07/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Description
  • 2. Solution
  • Reference
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档