题目解析
本题棋盘中“气”的位置有如下特点:
- 该位置没有棋子
- 该位置上下左右存在至少一个棋子(若为黑棋,则当前位置就是黑棋的气,若为白棋,则当前位置就是白棋的气,若既有黑棋,也有白棋,则同时为两个颜色棋的气)
因此,我们只需要遍历19*19的棋盘中每一个位置,检查对应位置是否有棋子,若没有棋子,则检查其上下左右四个位置是否存在黑棋、白棋,若存在则对应颜色的棋子的气数+1,需要注意的是,一个位置只能产生一个气,因此如果该位置的上下左右位置有多个黑棋,也只能为黑棋加一个气,白棋同理。
JS算法源码
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
const black = (await readline()).split(" ").map(Number);
const white = (await readline()).split(" ").map(Number);
// 定义棋盘,没有棋子用0表示
const board = new Array(19).fill(0).map