这道题是LeetCode里的第999道题。

题目叙述:

这道题很简单,首先我们要找到车的位置在哪,然后从车这个位置开始遍历它的上下左右方向的格子,判断是否为象或者卒。

代码如下:

class Solution {
public int numRookCaptures(char[][] board) {
int R_x=-1,R_y=-1;
int res=0;
//find R
for(int i=0;i<8;i++) {
for(int j=0;j<8;j++) {
if(board[i][j]=='R') {
R_x=i;R_y=j;break;
}
}
if(R_x>=0 && R_y>=0)break;
}
//up,down,left,right
for(int i=1;i+R_y<8;i++) {
if(board[R_x][i+R_y]=='B')break;
else if(board[R_x][i+R_y]=='p'){res++;break;}
}
for(int i=1;R_y-i>=0;i++) {
if(board[R_x][R_y-i]=='B')break;
else if(board[R_x][R_y-i]=='p') {res++;break;}
}
for(int i=1;R_x+i<8;i++) {
if(board[R_x+i][R_y]=='B')break;
else if(board[R_x+i][R_y]=='p') {res++;break;}
}
for(int i=1;R_x-i>=0;i++) {
if(board[R_x-i][R_y]=='B')break;
else if(board[R_x-i][R_y]=='p'){res++;break;}
}
return res;
}
}

提交结果:

【LeetCode】Available Captures for Rook(车的可用捕获量)-LMLPHP

个人总结:

这题数组题真的太简单了,被第1000题虐后来这里找找自信!

05-13 19:53