用python写一个n皇后问题代码
时间: 2023-12-17 21:12:10 浏览: 83
算法中的n皇后问题源代码
5星 · 资源好评率100%
好的,以下是一个 Python 实现的 n 皇后问题的代码:
```
class Solution:
def solveNQueens(self, n: int) -> List[List[str]]:
def dfs(queens, xy_dif, xy_sum):
row = len(queens)
if row == n:
result.append(queens)
return None
for col in range(n):
if col not in queens and row - col not in xy_dif and row + col not in xy_sum:
dfs(queens + [col], xy_dif + [row - col], xy_sum + [row + col])
result = []
dfs([], [], [])
return [["." * i + "Q" + "." * (n - i - 1) for i in sol] for sol in result]
```
这个代码使用了 DFS(深度优先搜索)算法,不断地在棋盘上摆放皇后,如果发现不符合条件,则回溯到上一步继续搜索。最终返回所有合法的摆放方案。
阅读全文