class Solution {
public int numRookCaptures(char[][] board) {
int row = 0;
int column = 0;
boolean hasFound = false;
for (int i=0; i<8; i++) {
for (int j=0; j<8; j++) {
if (board[i][j] == 'R') {
row = i;
column = j;
hasFound = true;
break;
}
}
if (hasFound)
break;
}
int count = 0;
boolean leftBlocked = false;
boolean rightBlocked = false;
boolean upBlocked = false;
boolean downBlocked = false;
for (int i=0; i<8; i++) {
if (i == row) {
for (int j=column-1,k=column+1; j>=0||k<8; j--,k++) {
if (leftBlocked && rightBlocked)
break;
if (j>=0 && !leftBlocked) {
if (board[i][j] == 'B') {
leftBlocked = true;
j = -1;
}
else if (board[i][j] == 'p') {
count++;
j = -1;
}
}
if (k<8 && !rightBlocked) {
if (board[i][k] == 'B') {
rightBlocked = true;
k = 8;
}
else if (board[i][k] == 'p') {
count++;
k = 8;
}
}
}
}
if (i == column) {
for (int j=row-1,k=row+1; j>=0||k<8; j--,k++) {
if (upBlocked && downBlocked)
break;
if (j>=0 && !downBlocked) {
if (board[j][i] == 'B') {
downBlocked = true;
j = -1;
}
else if (board[j][i] == 'p') {
count++;
j = -1;
}
}
if (k<8 && !upBlocked) {
if (board[k][i] == 'B') {
upBlocked = true;
k = 8;
}
else if (board[k][i] == 'p') {
count++;
k = 8;
}
}
}
}
}
return count;
}
}
【leetcode】999. Available Captures for Rook
猜你喜欢
转载自blog.csdn.net/Art1st_D/article/details/89467723
今日推荐
周排行