/**

 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可

 *

 * 

 * @param board char字符型二维数组 

 * @return char字符型二维数组

 */

function surroundedAreaboard ) {

    let x = board.length;

    let y = board[0].length;

    const dfs = (ij=> {

        if (i >= x || j >= y || i < 0 || y < 0return;

        if (board[i][j] !== 'O'return; // 不能写成 board[i][j] === 'X' 会报死循环        

board[i][j] = 'A';

        dfs(i + 1j);

        dfs(i - 1j);

        dfs(ij + 1);

        dfs(ij - 1);

    };

    for (let i = 0i < xi++) {

        dfs(0i);

        dfs(x-1i);

    }

    for (let j = 0j < y - 1j++) {

        dfs(j0);

        dfs(jy-1);

    }

    for (let m = 0m < xm++) {

        for (let n = 0n < yn++){

            if (board[m][n] === 'A') {

                board[m][n] = 'O'

            } else {

                board[m][n] = 'X'

            }

        }

    }

    return board;

}

module.exports = {

    surroundedArea : surroundedArea

};