2022-03-22:二进制取反。 有一个二进制字符串,可以选择该串中的任意一段区间进行取反(可以进行一次或不进行),取反指将0变为1,将1变为0。那么取反之后的num可能的最大的字典序是多少呢。如有

2023-07-11,,

2022-03-22:二进制取反。
有一个二进制字符串,可以选择该串中的任意一段区间进行取反(可以进行一次或不进行),取反指将0变为1,将1变为0。那么取反之后的num可能的最大的字典序是多少呢。如有,num=1000,讲区间[nums2,…num4]取反变为1111是字典序最大的。
输入例子1:“1000”。
输出例子1:“1111”。
腾讯音乐2022校园招聘。

答案2022-03-22:

从左往右看,第一次遇到连续的所有0,全翻转。

代码用golang编写。代码如下:

package main

import "fmt"

func main() {
num := "1000"
ret := maxLexicographical(num)
fmt.Println(ret)
} func maxLexicographical(num string) string {
arr := []byte(num)
i := 0
for i < len(arr) {
if arr[i] == '0' {
break
}
i++
}
for i < len(arr) {
if arr[i] == '1' {
break
}
arr[i] = '1'
i++
}
return string(arr)
}

执行结果如下:


左神java代码

2022-03-22:二进制取反。 有一个二进制字符串,可以选择该串中的任意一段区间进行取反(可以进行一次或不进行),取反指将0变为1,将1变为0。那么取反之后的num可能的最大的字典序是多少呢。如有的相关教程结束。

《2022-03-22:二进制取反。 有一个二进制字符串,可以选择该串中的任意一段区间进行取反(可以进行一次或不进行),取反指将0变为1,将1变为0。那么取反之后的num可能的最大的字典序是多少呢。如有.doc》

下载本文的Word格式文档,以方便收藏与打印。