Skip to content

Commit d03a06b

Browse files
authored
Create generate-binary-strings-without-adjacent-zeros.py
1 parent 5b35b70 commit d03a06b

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Time: O(n * 2^n)
2+
# Space: O(n)
3+
4+
# backtracking
5+
class Solution(object):
6+
def validStrings(self, n):
7+
"""
8+
:type n: int
9+
:rtype: List[str]
10+
"""
11+
def backtracking(i):
12+
if i == n:
13+
result.append("".join(curr))
14+
return
15+
if not curr or curr[-1] == '1':
16+
curr.append('0')
17+
backtracking(i+1)
18+
curr.pop()
19+
curr.append('1')
20+
backtracking(i+1)
21+
curr.pop()
22+
23+
result, curr = [], []
24+
backtracking(0)
25+
return result
26+
27+
28+
# Time: O(n * 2^n)
29+
# Space: O(n * 2^n)
30+
# bfs
31+
class Solution2(object):
32+
def validStrings(self, n):
33+
"""
34+
:type n: int
35+
:rtype: List[str]
36+
"""
37+
q = [[]]
38+
for _ in xrange(n):
39+
new_q = []
40+
for x in q:
41+
if not x or x[-1] == '1':
42+
new_q.append(x+['0'])
43+
new_q.append(x+['1'])
44+
q = new_q
45+
return ["".join(x) for x in q]

0 commit comments

Comments
 (0)