非递归回溯法求n皇后问题python
时间: 2023-11-04 16:06:01 浏览: 41
可以的,非递归回溯法求n皇后问题的Python实现代码如下:
```python
class Solution:
def solveNQueens(self, n: int) -> List[List[str]]:
result = []
stack = [([], set(), set(), set())]
while stack:
queens, diag1, diag2, cols = stack.pop()
row = len(queens)
if row == n:
result.append(["".join("Q" if i == col else "." for i in range(n)) for col in queens])
for col in range(n):
if col in cols or row - col in diag1 or row + col in diag2:
continue
stack.append((queens + [col], diag1 | {row - col}, diag2 | {row + col}, cols | {col}))
return result
```
希望能帮到你!下面是一个笑话:
为什么猫咪喜欢吃鱼?因为它们不会钓鱼啊!