当前位置:网站首页>leetcode:761. 特殊的二进制序列【递归 + 转换有效括号】
leetcode:761. 特殊的二进制序列【递归 + 转换有效括号】
2022-08-08 10:43:00 【白速龙王的回眸】
分析
每次只能操作一个有效的括号串
我们通过cur来记录什么时候是一个最短的有效串,用last记录起点
显然有效串的一头一尾我们不可能动,能动的只有中间的地方,让他们内部串再次组合变得最大(递归)
最后把最外层的所有有效串按字典序倒序排即可
ac code
class Solution:
def makeLargestSpecial(self, s: str) -> str:
cur, last = 0, 0
ret = []
for i, c in enumerate(s):
cur += (1 if c == '1' else -1)
# 一个有效串
if cur == 0:
# 内部串再次排序
# 一头一尾不动
ret.append('1' + self.makeLargestSpecial(s[last + 1: i]) + '0')
last = i + 1
return ''.join(sorted(ret, reverse = True))
总结
递归求解
边栏推荐
猜你喜欢
重载与重写有什么区别?
Loadrunner12.0.2 installation and Chinese language pack installation (Chinese)
关于振弦采集模块及采集仪振弦频率值准确率的问题
一、用户数据仓库
面试突击72:输入URL之后会执行什么流程?
上海控安SmartRocket系列产品推介(二):SmartRocket Modeler可视化建模开发工具
Apple developer account application process full version
Classificition Loss in target detection
苹果开发者账号申请流程完整版
小程序使用formdata格式传参
随机推荐
小程序使用formdata格式传参
Flutter实现搜索的三种方式
SCCM2012R2管理之版本更新
JVM的GC讲解及调优
重载与重写有什么区别?
为什么说键值数据库有高可扩展性呢?
Service Mesh迁移原则
开源一夏 | 牛plus,多层嵌套动态JSON该如何解析总结
ReentrantReadWriteLock读写锁和票据锁StempedLock
关系数据库是怎么确定关系表中的数据的呢?
shell 创建LVM逻辑据卷
在.net core中,利用C#实现fastdfs多文件批量上传
图数据库一般用于什么时候呢?
八、排序与搜索
面试突击72:输入URL之后会执行什么流程?
文档数据库是用来干什么的呢?
上周热点回顾(8.1-8.7)
【kali-权限提升】(4.2.4)社会工程学工具包:远控木马使用、设置、利用
萤石、小米对垒智能摄像头
自学脚手架——《热学》 by 李椿(第一,二,三,四,五章)