【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
} 

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

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

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

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

相关推荐
kukubuzai7 小时前
双指针系列二--末尾篇(3道题)
c++·算法·leetcode
杜 硕7 小时前
单链表经典算法题
数据结构·算法
小O的算法实验室7 小时前
IEEE TCYB,着色旅行商问题:模型、求解与应用
算法
h_a_o777oah7 小时前
【图论】网络流:Dinic 算法模板实现原理及解题技巧
c++·算法·图论·acm·网络流·最小割·dinic算法
我不会起名字3228 小时前
一天一道力扣Hot100(37):深度优先算法--括号生成
java·数据结构·c++·后端·python·算法·go
foolishlee8 小时前
SCRAM-SHA-256
数据库·算法·postgresql
Rabitebla8 小时前
【Linux 系统编程】权限(一):身份、提权,和那 9 个权限位
linux·数据结构·c++·算法
-dzk-8 小时前
【回溯】LC 22.括号生成
算法·回溯
杜 硕9 小时前
顺序表算法
数据结构·算法
AgentMaster10 小时前
智能客服多渠道接入,5 款产品的全渠道整合能力对比与实战
大数据·人工智能·算法