题解 | #二进制取反#

二进制取反

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

由于取反转后字典序最大的值,则从左至右找到第一处为 "0" 的连续区间并将其转换为 "1" 即可

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param num string字符串 
# @return string字符串
#
class Solution:
    def maxLexicographical(self , num ):
        # write code here
        s = e = -1
        for i, n in enumerate(num):
            if n == "0" and s == -1:
                s = i
            if n == "1" and s != -1:
                e = i
                break
        if s == -1:
            return num
        if e == -1:
            e = len(num)
        return num[:s] + "1" * (e - s) + num[e:]
题解 文章被收录于专栏

算法题解

全部评论

相关推荐

11-28 16:13
门头沟学院 Java
程序员小白条:年底了,都差不多了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务