代码(c++):
class Solution {
public:
int numRookCaptures(vector<vector<char>>& board) {
int cnt = 0,xm = 0,yf = 0;
int dx[4] = {-1,1,0,0};
int dy[4] = {0,0,-1,1};//方向数组
//找到车R
for(int i = 0;i < 8;++i)
for(int j = 0;j < 8;++j)
if(board[i][j] == 'R'){
xm = i;
yf = j;
break;
}
for(int k = 0;k < 4;++k){
int s = xm;
int t = yf;
while(true){
s += dx[k];
t += dy[k];
if(s<0 || s>7 || t<0 || t>7 || board[s][t] == 'B')
break;
if(board[s][t] == 'p'){
cnt++;
break;
}
}
}
return cnt;
}
};