File tree 1 file changed +45
-0
lines changed
1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change
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 ]
You can’t perform that action at this time.
0 commit comments