【LeetCode】每日一题 2024_10_29 生成不含相邻零的二进制字符串(DFS)

前言

每天和你一起刷 LeetCode 每日一题~

LeetCode 启动!

题目:生成不含相邻零的二进制字符串

代码与解题思路

今天的题目是一道经典的排列型深度优先搜索,学 dfs 路上的必做类型题。

题目描述写的很烂,不过题目本身非常清晰:"生成不含相邻零的二进制字符串",顾名思义,让我生成二级制字符串,但是不能含有相邻的 0

最常规的思路就是用 dfs 搜索所有可能出现的情况,代码如下:

go 复制代码
func validStrings(n int) (ans []string) {
    path := make([]byte, n)
    var dfs func(int)
    dfs = func(i int) {
        if i == n {
            ans = append(ans, string(path))
            return
        }

        path[i] = '1' // 填 1
        dfs(i+1)

        if i == 0 || path[i-1] == '1' { // 不含相邻零的二进制字符串,上一个字符不能是 0
            path[i] = '0' // 填 0
            dfs(i+1)
        }
    }
    dfs(0)
    return ans
} 

简单题简单讲,就不多聊些什么废话啦~

每天进步一点点,我们明天不见不散~

可以和我刷一辈子的每日一题吗?

一题一题,积累起来就是一辈子。

相关推荐
SsummerC20 分钟前
【leetcode100】杨辉三角
python·leetcode·动态规划
杰杰批21 分钟前
力扣热题100——普通数组(不普通)
算法·leetcode
CodeSheep21 分钟前
稚晖君又添一员猛将!
人工智能·算法·程序员
天天扭码22 分钟前
一分钟解决“3.无重复字符的最长字串问题”(最优解)
前端·javascript·算法
风靡晚28 分钟前
一种改进的CFAR算法用于目标检测(解决多目标掩蔽)
人工智能·算法·目标检测·目标跟踪·信息与通信·信号处理
香宝的最强后援XD42 分钟前
区域填充算法
算法
所以遗憾是什么呢?1 小时前
扩展欧几里得算法【Exgcd】的内容与题目应用
数学·算法·数论·扩展欧几里得·exgcd
haaaaaaarry1 小时前
【贪心】C++ 活动安排问题
开发语言·c++·算法·贪心
ChengZUOZZZ1 小时前
蓝桥杯题目:二维前缀和
java·算法·蓝桥杯
槐月杰5 小时前
C语言中冒泡排序和快速排序的区别
c语言·算法·排序算法