# Solving Leetcode Interviews in Seconds with AI: Generate Binary Strings Without Adjacent Zeros


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "3211" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> You are given a positive integer n. A binary string x is valid if all substrings of x of length 2 contain at least one "1". Return all valid strings with length n, in any order.   Example 1:  Input: n = 3 Output: ["010","011","101","110","111"] Explanation: The valid strings of length 3 are: "010", "011", "101", "110", and "111".  Example 2:  Input: n = 1 Output: ["0","1"] Explanation: The valid strings of length 1 are: "0" and "1".    Constraints:  1 <= n <= 18  

	# Explanation
	*   The core idea is to use backtracking (depth-first search) to explore all possible binary strings of length `n`.
*   During the search, we check the validity condition (substrings of length 2 must contain at least one "1") at each step to avoid exploring invalid branches.
*   We build the binary strings incrementally, one character at a time.

*   Runtime Complexity: O(2<sup>n</sup>), Storage Complexity: O(n) due to the recursion depth and string length.

	
	# Code
	```python
	def solve():
    n = int(input())
    
    def is_valid(s):
        for i in range(len(s) - 1):
            if s[i:i+2] == "00":
                return False
        return True

    result = []

    def backtrack(current_string):
        if len(current_string) == n:
            result.append(current_string)
            return
        
        for choice in ["0", "1"]:
            new_string = current_string + choice
            if len(new_string) >= 2 and new_string[-2:] == "00":
                continue
            backtrack(new_string)

    backtrack("")
    print(result)

solve()
	```
			
