2
bool isSafe(vector<string> board, int row, int col, int n) {6
// Checking for upper left diagonal7
while (row >= 0 && col >= 0) {8
if (board[row][col] == 'Q') return false;17
if (board[row][col] == 'Q') return false;23
// Checking for lower left diagonal24
while (row < n && col >= 0) {25
if (board[row][col] == 'Q') return false;33
void solve(vector<vector<string>> &ans, vector<string> &board, int n, int col) {39
for (int row = 0; row < n; row++) {40
if (isSafe(board, row, col, n)) {41
board[row][col] = 'Q';42
solve(ans, board, n, col + 1);43
board[row][col] = '.';49
vector<vector<string>> solveNQueens(int n) {50
vector<vector<string>> ans;53
for (int i = 0; i < n; i++) board.push_back(s);55
solve(ans, board, n, 0);