-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBFS.py
More file actions
22 lines (19 loc) · 699 Bytes
/
Copy pathBFS.py
File metadata and controls
22 lines (19 loc) · 699 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def gen_parentheses(pairs):
if not isinstance(pairs, int):
return 'The number of pairs should be an integer'
if pairs < 1:
return 'The number of pairs should be at least 1'
queue = [('', 0, 0)]
result = []
while queue:
print(queue)
current, opens_used, closes_used = queue.pop(0)
if len(current) == 2 * pairs:
result.append(current)
else:
if opens_used < pairs:
queue.append((current + '(', opens_used + 1, closes_used))
if closes_used < opens_used:
queue.append((current + ')', opens_used, closes_used + 1))
return result
print(gen_parentheses(3))