一、題目描述
#### 二、實例
三、解題思路
我們可以用兩層循環來對它進行遍歷,當遇到R時記錄它的橫縱座標 再對四個方向依次進行一個遍歷,當遇到B時直接break,當遇到p時num++,再break。
四、代碼
/**
* @param {character[][]} board
* @return {number}
*/
var numRookCaptures = function(board) {
let num = 0
for (let i = 0; i < 8; i++) {
for (let j = 0; j < 8; j++) {
if (board[i][j] == 'R') {
let m = i
let n = j
//i-1 上
while (--m >= 0) {
if (board[m][n] == 'B') break
if (board[m][n] == 'p') {
num++
break
}
}
m = i
//i+1 下
while (++m < 8) {
if (board[m][n] == 'B') break
if (board[m][n] == 'p') {
num++
break
}
}
m = i
//j-1 左
while (--n >=0) {
if (board[m][n] == 'B') break
if (board[m][n] == 'p') {
num++
break
}
}
n = j
//j+1 右
while (++n < 8) {
if (board[m][n] == 'B') break
if (board[m][n] == 'p') {
num++
break
}
}
return num
}
}
}
};