【每日题解】3211. 生成不含相邻零的二进制字符串
给你一个正整数 n。
如果一个二进制字符串 x 的所有长度为 2 的
子字符串
中包含 至少 一个 "1",则称 x 是一个 有效 字符串。
返回所有长度为 n 的 有效 字符串,可以以任意顺序排列。
示例 1:
输入: n = 3
输出: ["010","011","101","110","111"]
解释:
长度为 3 的有效字符串有:"010"、"011"、"101"、"110" 和 "111"。
示例 2:
输入: n = 1
输出: ["0","1"]
解释:
长度为 1 的有效字符串有:"0" 和 "1"。
思路
- 如果我们有长度为 x 的字符串,根据二进制的规则,我们就能够生成长度为 x+1 的字符串(递归调用)
- 如果当前字符串以 0 结尾,我们只能向后补 1,否则出现 00,如果以 1 结尾,则可以补 0 或 1。
因此我们可以采用递归的思想,从长度为 1 的字符串开始生成,按照上面的逻辑生成全部长度为 n 的可能结果。

代码(C++)
class Solution {
public:vector<string> validStrings(int n) {vector<string> result;for (char start : {'0', '1'}) {backtrack(string(1, start), n, result);}return result;}void backtrack(string current, int n, vector<string>& result) {if (current.length() == n) {result.push_back(current);return;}if (current.back() == '0') {backtrack(current + '1', n, result);} else {backtrack(current + '0', n, result);backtrack(current + '1', n, result);}}
};
代码(C++ 用队列逐层生成字符串)
class Solution {
public:vector<string> validStrings(int n) {vector<string> result;queue<string> q;q.push("0");q.push("1");while (!q.empty()) {string current = q.front();q.pop();if (current.length() == n) {result.push_back(current);continue;}if (current.back() == '0') {q.push(current + '1');} else {q.push(current + '1');q.push(current + '0');}}return result;}
};
代码(Python)
class Solution:def validStrings(self, n: int) -> List[str]:def backtrack(current):if len(current) == n:result.append(current)returnif current[-1] == '0':backtrack(current + '1')else:backtrack(current + '0')backtrack(current + '1')result = []for start in ['0', '1']:backtrack(start)return result
相关文章:
【每日题解】3211. 生成不含相邻零的二进制字符串
给你一个正整数 n。 如果一个二进制字符串 x 的所有长度为 2 的 子字符串 中包含 至少 一个 "1",则称 x 是一个 有效 字符串。 返回所有长度为 n 的 有效 字符串,可以以任意顺序排列。 示例 1: 输入: n 3 输出&a…...
Nginx、Tomcat等项目部署问题及解决方案详解
目录 前言1. Nginx部署后未按预期显示结果1.1 查看Nginx的启动情况1.2 解决启动失败的常见原因 2. 端口开启问题2.1 Windows环境下的端口开放2.2 Linux环境下的端口开放 3. 重视日志分析3.1 Nginx日志分析3.2 Tomcat日志分析 4. 开发环境与部署后运行结果不同4.1 开发环境与生产…...
【PythonWeb开发】Flask-RESTful参数解析
flask-restful中的reqparse.RequestParser是一个用于解析和验证参数的工具。它可以帮助开发者从请求中提取参数,并确保这些参数符合预期的格式和类型。参数解析的意思就是规范化传入的参数并获取到这些参数。 一、什么是 reqparse.RequestParser? reqpa…...
gcc与mingw64版本介绍
三类编译器 GCC,全称为GNU Compiler Collection,是一个强大的编译器集合,它不仅支持C和C语言,还支持Fortran、Ada、Java等多种编程语言的编译。在GCC工具链中,gcc和g是两个核心的编译器工具。gcc是专门用于编译C语言程…...
CSS3新增长度单位
CSS3新增长度单位 rem:根元素字体的倍数,只与根元素字体大小有关;vw:占视口宽度的百分比;vh:占视口高度的百分比;vmax:占视口中宽和高最大的百分比;vmin:占视…...
【Spring】创建Spring项目前的配置工作
🥊作者:一只爱打拳的程序猿,Java领域新星创作者,CSDN、阿里云社区优质创作者。 🤼文章收录于:Spring 目录 1.下载Spring Initializr 2.配置Spring国内源 3.添加Spring框架的支持(pom.xml) 4.刷新Maven仓…...
docker 安装部署 nginx
命令 docker run \ -p 15008:80 \ --name nginx1.21.6 \ -v /iepms/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /iepms/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /iepms/nginx/log:/var/log/nginx \ -v /iepms/nginx/html:/usr/share/nginx/html \ -d 192.168.1.103…...
黑马数据库学习笔记
课程地址 (基础篇)MySQL的启动 mysql 默认使用 3306 端口 在 centos下,启动 mysql 数据库:service mysqld start; 查看状态/启动/停止/重启:systemctl status/start/stop/restart mysqld; 登录到mysql数据库&…...
MYSQL-SQL-03-DQL(Data Query Language,数据查询语言)(单表查询)
DQL(数据查询语言) DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。 查询关键字: SELECT 在一个正常的业务系统中,查询操作的频次是要远高于增删改的,当我们去访…...
【数据结构和算法】三、动态规划原理讲解与实战演练
目录 1、什么是动态规划? 2、动态规划实战演练 2.1 力扣题之爬楼梯问题 (1)解题思路1: (2)解题思路2: (3)动态规划(DP):解题思路 (4&#x…...
交叉编译 perl-5.40.0(riscv64)
交叉编译 perl-5.40.0(riscv64) https://arsv.github.io/perl-cross/usage.html https://github.com/arsv/perl-cross 借助 perl-cross 进行交叉编译 https://www.perl.org/get.html#unix_like 这里获取 perl-5.40.0 的源码 https://github.com/arsv/pe…...
Leetcode 搜索旋转排序数组
这段代码是用于解决LeetCode第33题“搜索旋转排序数组”的Java解法。以下是对该算法思想的中文解释: 算法思想 二分查找的基本思路: 由于数组是部分有序的(被旋转过),我们可以利用二分查找的思想,逐步缩小…...
Spring Task—定时任务
Spring Task 是 Spring 提供的一种轻量级定时任务调度功能,内置在 Spring 框架中。与 Quartz 等重量级调度框架相比,Spring Task 使用简便,无需额外依赖,适合在简单的调度任务场景中使用。通过注解配置方式,开发者可以…...
Spring Boot 应用开发概述
目录 Spring Boot 应用开发概述 Spring Boot 的核心特性 Spring Boot 的开发模式 Spring Boot 在企业应用开发中的优势 结论 Spring Boot 应用开发概述 Spring Boot 是由 Pivotal 团队开发的一个框架,基于 Spring 框架,旨在简化和加速基于 Spring …...
Chrome谷歌浏览器加载ActiveX控件之allWebDesktop控件介绍
背景 allWebDesktop控件是一款方便用户在线打开各类文档的OA办公控件。它设计比较轻巧,充分利用计算机程序资源打开文档,并将程序窗口嵌入到allWebDesktop控件区域内,从而实现浏览器内打开各类文档效果。 allWebPlugin中间件是一款为用户提供…...
GitHub Star 数量前 5 的开源应用程序生成器
欢迎来的 GitHub Star 数量排名系列文章的第 7 篇——最受欢迎的应用程序生成器。 之前我们已经详细探讨过:在 GitHub 上最受欢迎的——无代码工具、低代码项目、内部工具、CRUD项目、自部署项目和 Airtable 开源替代品。累计超过 50 个优质项目!&#…...
DBC文件当中新建CANFD等类型的报文
同学最近有添加CANFD报文的需求,需要用到CANFD类型报文的DBC文件,这下就难住我了,我之前用的DBC文件只有“CAN Standard”“CAN Extended”两种类型,压根没见过FD的。 后来他找到了项目之前的DBC,打开来看,…...
基于SpringBoot的房地产销售管理系统【附源码】
基于SpringBoot的房地产销售管理系统(源码L文说明文档) 目录 4 系统设计 4.1用户登录功能的详细实现 4.2管理员权限的功能实现 4.2.1客户信息管理功能的详细实现 4.2.2房产管理功能的详细实现 4.2.3预约看房功能的详细实现 4.2.4论…...
圆点虚线 Android
参考 https://blog.csdn.net/l_o_s/article/details/73550876 <com.xxx.wwww.weight.PointDividerViewandroid:layout_width"match_parent"android:layout_height"wrap_content"app:PDbackgroundColor"color/white"app:dotColor"color/…...
贵州鑫宏远农业-始终致力于推动现代农业的科技创新与发展
贵州鑫宏远农业科技有限公司,是一家在高科技农业领域深耕细作、锐意进取的企业。自成立以来,我们始终致力于推动现代农业的科技创新与发展,业务全面覆盖农业科学研发、组织培养生产、专业育苗培植、半成品及成品精细化养护、市场销售以及全方…...
vLLM-v0.17.1应用场景:智能硬件语音助手离线LLM推理部署
vLLM-v0.17.1应用场景:智能硬件语音助手离线LLM推理部署 1. 技术背景与需求分析 智能硬件语音助手正在经历从云端依赖向本地化处理的转变。传统方案面临三大痛点: 网络延迟问题:云端API调用导致响应速度受限隐私安全顾虑:用户对…...
小白也能懂:Qwen3-TTS-Tokenizer-12Hz的API调用与Python示例
小白也能懂:Qwen3-TTS-Tokenizer-12Hz的API调用与Python示例 1. 前言:音频编解码器能做什么? 想象一下,你录制了一段重要的会议录音,文件大小有50MB,想通过微信发给同事,却发现超过了文件大小…...
基于设备树与内核中断的125KHZ RFID曼彻斯特码实时解码实践
1. 曼彻斯特码解码原理详解 125KHz RFID系统广泛用于门禁、物流追踪等场景,其数据传输采用曼彻斯特编码方式。这种编码最大的特点是每个数据位都包含电平跳变,使得时钟恢复变得简单。具体来说,EM4100卡片每传送一位数据需要64个载波周期&…...
【紧急预警】CPython 3.12升级后,3款主流内存工具失效!2024最稳选型组合(含兼容性补丁与迁移路径)
第一章:Python 内存检测工具选型的底层逻辑与演进脉络Python 内存管理机制以引用计数为核心,辅以循环垃圾回收器(GC)和内存池(pymalloc),这决定了内存问题往往隐匿于对象生命周期、引用链异常或…...
终极Windows远程桌面多用户破解指南:让家庭版也能同时登录15人!
终极Windows远程桌面多用户破解指南:让家庭版也能同时登录15人! 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap 还在为Windows家庭版只能一个人远程连接而烦恼吗?🤔 …...
5大场景解锁智能群管理:如何让LuckyLilliaBot提升社群运营效率80%
5大场景解锁智能群管理:如何让LuckyLilliaBot提升社群运营效率80% 【免费下载链接】LuckyLilliaBot NTQQ的OneBot API插件 项目地址: https://gitcode.com/gh_mirrors/li/LuckyLilliaBot LuckyLilliaBot作为一款基于OneBot11协议的NTQQ插件,能够将…...
Windows右键菜单终极管理指南:ContextMenuManager完全掌控你的系统交互体验
Windows右键菜单终极管理指南:ContextMenuManager完全掌控你的系统交互体验 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager Windows右键菜单管理一直…...
基于 Kinova Gen3 机械臂的家庭人机交互安全算法研究
随着服务机器人逐步进入家庭场景,人机交互(HRI)的安全性成为影响机器人普及的关键因素。相较于工业环境,家庭空间布局多变、人员活动随机,对机械臂的感知、规划与控制提出了更高要求。本文以7自由度Kinova Gen3机械臂为…...
你的加密音乐文件,是否真的属于你?
你的加密音乐文件,是否真的属于你? 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://gitc…...
建行江门市分行:量身定制金融策 陈皮产业绽新姿
“前期承包土地、购买柑苗已投入大量资金,后续还要设法购买化肥。”眼看资金接续不上,前期投入面临打水漂,流动资金短缺让江门新会某陈皮庄园负责人老李一筹莫展。 获悉老李困境后,建行广东江门分行网点客户经理驱车前往果园实地走…...
