LC761.特殊的二进制序列
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.特殊的二进制序列的更多相关文章
- [Swift]LeetCode761. 特殊的二进制序列 | Special Binary String
Special binary strings are binary strings with the following two properties: The number of 0's is eq ...
- Java8的新特性,二进制序列转十进制数字
package kata_007_二进制序列转十进制int; /** * java8 Lambda表达式转换binary序列->十进制数 */ import java.util.ArrayLis ...
- firedac二进制序列和JSON序列的对比
firedac二进制序列和JSON序列的对比 以同样大小的一个数据集的数据,作为测试的数据. 以JSON序列后的数据体积是4958字节. 以二进制序列后的数据体积是3044字节. 4958/3044= ...
- Java实现 LeetCode 761 特殊的二进制序列(括号问题)
761. 特殊的二进制序列 特殊的二进制序列是具有以下两个性质的二进制序列: 0 的数量与 1 的数量相等. 二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量. 给定一个特殊的二进制序列 ...
- 译文:二进制序列类型 --- bytes, bytearray
在进行一些内置函数调用时,会发现bytes类型的参数或返回值,这个类型老猿前面没有介绍过,在此就不单独介绍了,直接从Python官网的内容用翻译软件翻译过来稍微修改. 操作二进制数据的核心内置类型是 ...
- 据序和中序序列或者也许为了一个二进制序列,恢复二进制和打印图像(c语言)
首先要预购和序,以恢复它: 1.首先,我们使用的是递归的方式来完成 2.递归的最小单位:一个空的树和书的前言和第一序.该序列的第一个元素是树的第一序列根,调用这种方法 3.递归的终止条件是.当这棵树的 ...
- 深入理解计算机系统(2.4)---C语言的有符号与无符号、二进制整数的扩展与截断
开篇请各位猿友允许LZ啰嗦几句,最近一直在写计算机系统原理这系列文章,也已经下定决心要把这本书的内容写完.主要目的其实是为了巩固LZ的理解,另外也想把这些内容分享给猿友们,毕竟LZ觉得这些内容对程序猿 ...
- MATLAB 通过二进制读写文件
这几天在做信息隐藏方面的应用,在读写文本文件时耗费许久,故特别的上网学习一二,这里给出一常用读写,其他的都类似. 很多时候,我们都要将一个.txt以二进制方式读出来,操作后在恢复成.txt文本. ma ...
- 十进制字符串转成二进制(decimal to binary)
题目:给一个十进制的字符串例如1.25, 将其转化为二进制字符串,这个例子的结果是1.01 = 1*2^0 + 0*2^(-1) + 1*2^(-2) = 1.25. 如果不能完整的用二进制表示,输出 ...
- Python 文本和字节序列
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Helvetica } Python 3 明确区分了人类可读的文本字符串和原始的字节序列.隐式 ...
随机推荐
- 探讨Morest在RESTful API测试的行业实践
摘要:在本文中,我们将重点探讨使用自动化智能化Morest测试技术在RESTful API测试的行业实践. 本文分享自华为云社区<[智能化测试专题]华为云API智能测试工具--Morest测试框 ...
- context状态树
provider customer 父组件 创建context对象并导出 export const AddContext = React.createContext<any>({}) 导出 ...
- day13-功能实现12
家居网购项目实现012 以下皆为部分代码,详见 https://github.com/liyuelian/furniture_mall.git 29.功能27-Ajax检验注册名 29.1需求分析/图 ...
- [OpenCV实战]21 使用OpenCV的Eigenface
目录 1 PCA 1.1 方差是什么 1.2 什么是PCA 1.3 什么是矩阵的特征向量和特征值? 1.4 如何计算PCA 2 什么是EigenFaces? 2.1 将图像作为向量 2.2 如何计算如 ...
- vulnhub靶场之HACKATHONCTF: 2
准备: 攻击机:虚拟机kali.本机win10. 靶机:HackathonCTF: 2,下载地址:https://download.vulnhub.com/hackathonctf/Hackathon ...
- 题解 P5607 [Ynoi2013] 无力回天 NOI2017
简要题意 其实我觉得这个部分可以不要,因为这道题的题面还是很清晰的. 你需要维护一个数据结构,支持区间异或和区间求与 \(v\) 的最大异或和. 思路 对于这种区间问题,最容易想到的就是 分块 线段树 ...
- Postman实现UI自动化测试
转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/1db4fa44.html 你好,我是测试蔡坨坨. 看到这篇文章的标题,是不是有小伙伴会感到惊讶呢? Postman不是做接口 ...
- Codeforces Round #844 (Div.1 + Div.2) CF 1782 A~F 题解
点我看题 A. Parallel Projection 我们其实是要在这个矩形的边界上找一个点(x,y),使得(a,b)到(x,y)的曼哈顿距离和(f,g)到(x,y)的曼哈顿距离之和最小,求出最小值 ...
- 创建型模式 - 抽象工厂模式AbstractFactory
学习而来,代码是自己敲的.也有些自己的理解在里边,有问题希望大家指出. 模式的定义与特点 抽象工厂模式.是一种为访问类提供一个创建一组相关或相关一类对象的接口,且访问类无需指定所要的产品的具体类,就能 ...
- By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Qt5", but CMake did not find one.
环境 qt5.12.3 deepin15.10 cmake构建 由于之前使用的是仓库自带的qt环境,后来需要更高版本qt,于是从官网下载安装器自己安装,重新构建之后便出现这个问题,具体报错如下 CM ...