首页 > 试题广场 >

二进制取反

[编程题]二进制取反
  • 热度指数:3905 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

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

示例1

输入

"1000"

输出

"1111"

说明

如题意描述。
示例2

输入

"1001"

输出

"1111"

说明

对区间[num_2,num_3]取反能使得字典序最大。    

备注:
num的长度不超过1000。
头像 godhands
发表于 2021-12-29 18:10:26
描述 题目描述 首先给定我们一个二进制的字符串,我们有一次操作的机会就是把一段区间之内的地方取反,我们要返回最大的字典序 字典序: 这里最大的字典序就是这个字符串从左向右来看,前面尽可能都是1 样例解释 "1000" 这里我们可以把num1,num2,num3num1, num2, num3num 展开全文
头像 用户抉择
发表于 2022-06-26 14:56:37
class Solution { public:     string maxLexicographical(string num) {        展开全文
头像 xqxls
发表于 2022-02-28 22:12:43
题意整理 给定一个二进制字符串num,可以选择该串中的任意一段区间进行取反(将0变为1,或将1变为0)。 求取反之后的num可能的最大的字典序。 方法一(循环+标记) 1.解题思路 首先将字符串转化为字符数组。 然后只要遍历到一个为0的位置,则将当前所有连续为0的位变为1。并且将标记打为tru 展开全文
头像 fred-coder
发表于 2021-12-30 00:09:10
由于取反转后字典序最大的值,则从左至右找到第一处为 "0" 的连续区间并将其转换为 "1" 即可 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param num string字符串 # @return string字符串 # class Sol 展开全文
头像 Ryoryo
发表于 2022-04-06 16:08:33
题解 先找出0出现的位置存入列表c,然后判断首个0后面是否有连续0,得出要把0变成1的个数i+1个,然后把num首歌0前面的和 i+1个0 和连续0的最后一位后面的字符串连起来。 # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param num str 展开全文
头像 乐弦之佩
发表于 2022-11-20 14:13:24
import java.util.*; public class Solution { public String maxLexicographical (String num) { // 预处理 if (num.length() == 0) return 展开全文
头像 牛客82035003号
发表于 2022-08-25 18:18:44
根据首元素是0还是1确定不同的边界。 首元素是0时,左边界为0,右边界为第一个出现的‘1’的下标再减1. 首元素为1时,继续遍历,左边界为第一个出现的‘0’的下标,当然也可能遍历完也没有出现,这就是全1的情况,已是最大,那么直接返回原数即可。 有0出现确定了左边界,那么继续遍历,第 展开全文
头像 代码界的小白
发表于 2021-12-30 14:06:14
题目主要信息 1、将一个二进制字符串num选择一个区间取反 2、获得最大的字典序 方法一:暴力法 具体方法 直接便利一遍,并记录出现0的位置,如果是连续位置的0,就将其变为1,由于要求最终的字典序最大,所以优先将前面连续的0变成1。 结合例子给出解释 0111001 虽然有两处连续的0,可以变成11 展开全文
头像 君无颜
发表于 2022-03-02 11:29:46
要找改哪个区间最大,肯定是越左边越好,所以从左边开始找到第一个0即可 确定了左端点,直接从左端点开始往后走,把这个区间的0都走完,改成1。 c++实现 class Solution { public: string maxLexicographical(string num) { 展开全文
头像 牛客600608245号
发表于 2023-09-11 14:20:56
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num string字符串 * @return string字符串 展开全文