题解 | #二进制取反#

二进制取反

http://www.nowcoder.com/questionTerminal/4ca47baf4d5f4417afc0f99d6efc7d42

题解 先找出0出现的位置存入列表c,然后判断首个0后面是否有连续0,得出要把0变成1的个数i+1个,然后把num首歌0前面的和 i+1个0 和连续0的最后一位后面的字符串连起来。

# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param num string字符串 
# @return string字符串
#
class Solution:
    def maxLexicographical(self , num ):
        # write code here
        c = []
        for i,a in enumerate(num):
            if a=='0':
                c.append(i)
        if c == []:
            return num
        i = 0
        j = 0
        while i < len(c)-1:
            if c[i]+1 == c[i+1]:
                i += 1
                j = c[i]+1
            else:
                j = c[i]+1
                break
        num = num[0:c[0]] + '1'*(i+1) + num[j:]
        return num
            
全部评论

相关推荐

2024-11-21 14:22
门头沟学院 硬件开发
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务