Please implement a Python function that takes a non-negative integer argument n as input, and it produces a list of all binary strings with length n such that none of the strings in the output list contains adjacent 0s.
generate_strings(0) --> ['']
generate_strings(1) --> ['0', '1']
generate_strings(2) --> ['01', '10', '11']
generate_strings(3) --> ['010', '011', '101', '110', '111']
这道题要求生成所有长度为 n 的二进制字符串,并且结果中不能出现相邻的 0。核心思路通常是回溯或递归构造:从前往后逐位添加字符,每一步只在不违反约束的情况下继续扩展,例如当前一位已经是 0 时,下一位不能再放 0。题目给出的样例展示了 n=0、1、2、3 的输出,可以帮助确认边界条件和生成顺序。实现时可以用 DFS 维护当前前缀,并在递归过程中根据上一个字符决定下一步能否加入 0 或 1。
正文完