def solveNQueens() :
n = 8
_item = [['.' for _ in range(n)] for _ in range(n)]
res = []
def placeRowN(diagonals1,diagonals2,columns):
i = len(columns)
# 如果写满每一行,
if len(columns) == n:
rows = []
for i in _item: rows.append(''.join(i))
res.append(rows)
for j in range(n):# 循环列
if j not in columns and i + j not in diagonals1 and j - i not in diagonals2:
_item[i][j] = 'Q'
placeRowN(diagonals1+[i+j], diagonals2+[j-i], columns+[j])
_item[i][j] = '.'
placeRowN([],[],[])
return res
# print(solveNQueens())
print(len(solveNQueens()))
八皇后解题方案 Python
于 2022-04-12 19:40:57 首次发布