• import org.junit.jupiter.api.Test;

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;

    /**
    * @author YAM
    */
    public class Test01 {
    public static void main(String[] args) {
    String s = "11011000";
    String ans = makeLargestSpecial(s);
    System.out.println("ans="+ans );
    }

    public static String makeLargestSpecial(String s) {
    if (s.length() <= 2) {
    return s;
    }
    int cnt = 0, left = 0;
    List<String> subs = new ArrayList<String>();
    for (int i = 0; i < s.length(); ++i) {
    if (s.charAt(i) == '1') {
    ++cnt;
    } else {
    --cnt;
    if (cnt == 0) {
    System.out.println("i="+i);
    subs.add("1" + makeLargestSpecial(s.substring(left + 1, i)) + "0");
    //递归如下:
    // substring ( 1 , 7 ) , >= 1 && < 7
    // makeLargestSpecial("101100") first s = "101100"为 非 特殊的二进制序列
    // "101100" 拆解:@start
    // substring ( 1 , 1 ) , >= 1 && < 1 , left = i(1) + 1 = 2
    // makeLargestSpecial("") second
    // return s (空) subs.add("10") 第一次添加
    // substring ( 3 , 5 ) , >= 3 && < 5
    // makeLargestSpecial("10") third
    // return s ("10") subs.add("1100") 第二次添加 @end
    // subs = [10, 1100];
    left = i + 1;
    //i=7
    //i=1
    //i=5
    }
    }
    }
    System.out.println("subs2="+subs);
    Collections.sort(subs, Comparator.reverseOrder());
    System.out.println("subs1="+subs);
    StringBuilder ans = new StringBuilder();
    for (String sub : subs) {
    ans.append(sub);
    System.out.println(sub);
    }
    return ans.toString();
    }

    }

以上注释即为递归解释

LC761.特殊的二进制序列的更多相关文章

  1. [Swift]LeetCode761. 特殊的二进制序列 | Special Binary String

    Special binary strings are binary strings with the following two properties: The number of 0's is eq ...

  2. Java8的新特性,二进制序列转十进制数字

    package kata_007_二进制序列转十进制int; /** * java8 Lambda表达式转换binary序列->十进制数 */ import java.util.ArrayLis ...

  3. firedac二进制序列和JSON序列的对比

    firedac二进制序列和JSON序列的对比 以同样大小的一个数据集的数据,作为测试的数据. 以JSON序列后的数据体积是4958字节. 以二进制序列后的数据体积是3044字节. 4958/3044= ...

  4. Java实现 LeetCode 761 特殊的二进制序列(括号问题)

    761. 特殊的二进制序列 特殊的二进制序列是具有以下两个性质的二进制序列: 0 的数量与 1 的数量相等. 二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量. 给定一个特殊的二进制序列 ...

  5. 译文:二进制序列类型 --- bytes, bytearray

    在进行一些内置函数调用时,会发现bytes类型的参数或返回值,这个类型老猿前面没有介绍过,在此就不单独介绍了,直接从Python官网的内容用翻译软件翻译过来稍微修改. 操作二进制数据的核心内置类型是 ...

  6. 据序和中序序列或者也许为了一个二进制序列,恢复二进制和打印图像(c语言)

    首先要预购和序,以恢复它: 1.首先,我们使用的是递归的方式来完成 2.递归的最小单位:一个空的树和书的前言和第一序.该序列的第一个元素是树的第一序列根,调用这种方法 3.递归的终止条件是.当这棵树的 ...

  7. 深入理解计算机系统(2.4)---C语言的有符号与无符号、二进制整数的扩展与截断

    开篇请各位猿友允许LZ啰嗦几句,最近一直在写计算机系统原理这系列文章,也已经下定决心要把这本书的内容写完.主要目的其实是为了巩固LZ的理解,另外也想把这些内容分享给猿友们,毕竟LZ觉得这些内容对程序猿 ...

  8. MATLAB 通过二进制读写文件

    这几天在做信息隐藏方面的应用,在读写文本文件时耗费许久,故特别的上网学习一二,这里给出一常用读写,其他的都类似. 很多时候,我们都要将一个.txt以二进制方式读出来,操作后在恢复成.txt文本. ma ...

  9. 十进制字符串转成二进制(decimal to binary)

    题目:给一个十进制的字符串例如1.25, 将其转化为二进制字符串,这个例子的结果是1.01 = 1*2^0 + 0*2^(-1) + 1*2^(-2) = 1.25. 如果不能完整的用二进制表示,输出 ...

  10. Python 文本和字节序列

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Helvetica } Python 3 明确区分了人类可读的文本字符串和原始的字节序列.隐式 ...

随机推荐

  1. (GCC) C++代码中使用#pragma GCC optimize / #pragma G++ optimize

    科学计算用优化 经过实验证明这个命令优化效果最好,把我的 1.2S 的 FFT 优化到了 0.4S使用 pragma 命令优化程序: #pragma GCC optimize("Ofast, ...

  2. liunx下安装Jexus5.8.2独立版运行asp.net MVC5

    Jexus 5.8.2独立版介绍 支持系统(64位):CentOS 6.5.Ubuntu 12.04版本以上包含当前版本. 运行环境:WebForm.Mvc3-5.WebService WebApi, ...

  3. 【每日一题】【快速排序过程、循环过程无=、递归参数】2022年1月16日-NC140 排序

    快速排序 对时间复杂度和空间复杂度有要求 方法1:快速排序-递归 import java.util.*; public class Solution { /** * 代码中的类名.方法名.参数名已经指 ...

  4. CTF隐写术总结

    CTF隐写术总结 1.查看图像属性及详细信息 或者查看图像的高度,利用winhex等工具改变图像宽度或高度,查看是否有隐藏信息. 2.利用winhex或nodepad++打开搜索ctf,flag,ke ...

  5. 【机器学习】李宏毅——Recurrent Neural Network(循环神经网络)

    假设我们当前要做一个人工智能客服系统,那该系统就需要对用户输入的话语进行辨认,例如用户输入: I want to arrive Taipei on November 2nd 那么该系统就能够辨认出来T ...

  6. 创建并且配置win10系统虚拟机

    一.创建Windows10镜像 1.下载地址:https://www.microsoft.com/zh-cn/software-download/windows10 2.制作镜像 完成之后,会生成一个 ...

  7. 基于 Traefik 的激进 TLS 安全配置实践

    前言 Traefik是一个现代的HTTP反向代理和负载均衡器,使部署微服务变得容易. Traefik可以与现有的多种基础设施组件(Docker.Swarm模式.Kubernetes.Marathon. ...

  8. 对Asp.net WebApi中异步(async+await)接口实际使用及相关思考(示例给出了get,post,提交文件,异步接口等实践).

    [很多初学者的疑问] 为何作为web api这样的天然的并发应用,还需要在controller的action上声明使用async这些呢? <参考解答> 在 web 服务器上,.NET Fr ...

  9. [OpenCV实战]9 使用OpenCV寻找平面图形的质心

    目录 1 名词解释 2 在OpenCV中查找Blob质心的步骤 3 图像多个blob下的质心获取 4 参考 在中学,我们学习了几何的中各种平面图形.找到标准平面图形的中心(几何中心)比较容易,如圆形, ...

  10. [cocos2d-x]TextureCache和spriteFramecache

    SpriteFrameCache 主要服务于多张碎图合并出来的纹理图片.这种纹理在一张大图中包含了多张小图,直接通过TextureCache引用会有诸多不便,因而衍生出来精灵框帧的处理方式,即把截取好 ...