MCPcopy Index your code
hub / github.com/BeeBombshell/Python-DSA / n_queens

Function n_queens

Backtracking/N_queens.py:1–24  ·  view source on GitHub ↗
(n)

Source from the content-addressed store, hash-verified

1def n_queens(n):
2 res = []
3 board = [['.']*n for i in range(n)]
4 cols = set()
5 pdiags = set()
6 ndiags = set()
7 def gen(r):
8 if r == n:
9 res.append([''.join(row) for row in board])
10 return
11 for c in range(n):
12 if c in cols or r+c in pdiags or r-c in ndiags:
13 continue
14 board[r][c] = 'Q'
15 cols.add(c)
16 pdiags.add(r+c)
17 ndiags.add(r-c)
18 gen(r + 1)
19 board[r][c] = '.'
20 cols.remove(c)
21 pdiags.remove(r+c)
22 ndiags.remove(r-c)
23 gen(0)
24 return res
25
26print(n_queens(8))

Callers 1

N_queens.pyFile · 0.85

Calls 1

genFunction · 0.85

Tested by

no test coverage detected