/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param board char字符型二维数组
* @return char字符型二维数组
*/
function surroundedArea( board ) {
let x = board.length;
let y = board[0].length;
const dfs = (i, j) => {
if (i >= x || j >= y || i < 0 || y < 0) return;
if (board[i][j] !== 'O') return; // 不能写成 board[i][j] === 'X' 会报死循环
board[i][j] = 'A';
dfs(i + 1, j);
dfs(i - 1, j);
dfs(i, j + 1);
dfs(i, j - 1);
};
for (let i = 0; i < x; i++) {
dfs(0, i);
dfs(x-1, i);
}
for (let j = 0; j < y - 1; j++) {
dfs(j, 0);
dfs(j, y-1);
}
for (let m = 0; m < x; m++) {
for (let n = 0; n < y; n++){
if (board[m][n] === 'A') {
board[m][n] = 'O'
} else {
board[m][n] = 'X'
}
}
}
return board;
}
module.exports = {
surroundedArea : surroundedArea
};