classSolution(object): defsolveNQueens(self, n): """ :type n: int :rtype: List[List[str]] """ ans = [] board = [['.'for i inrange(n)] for j inrange(n)] defdfs(board, idx): for i inrange(n): board[idx][i] = 'Q' if checked(board, idx, i): if idx == n-1: ans.append(["".join(t) for t in board]) else: dfs(board, idx+1) board[idx][i] = '.' defchecked(board, i, j): for k inrange(i): if board[k][j] == 'Q': returnFalse for m inrange(n): if board[k][m] == 'Q'and i-k == abs(m-j): returnFalse returnTrue dfs(board, 0) return ans