今日打卡,暴力破解!先找到R的位置,然后固定横轴扫描R的左侧和右侧;再固定纵轴扫描R的上侧和下侧,碰到卒就增加1并且break,碰到墙壁或象就退出。
因为已经告诉你是在8*8矩阵里操作,所以下面直接用。
源码:
int numRookCaptures(vector<vector<char>>& board) {
int heng ,zong ;
for(int i = 0; i < 8; i ++)
{
for(int j = 0; j < 8; j ++)
{
if(board[i][j] == 'R')
{
heng = i;
zong = j;
break;
}
}
}
int res = 0;
for(int i = heng; i < 8; i++)
{
if(board[i][zong] == 'p')
{
res ++ ;
break;
}
if(board[i][zong] == 7 || board[i][zong] == 'B')
{
break;
}
}
for(int i = heng; i > 0; i--)
{
if(board[i][zong] == 'p')
{
res ++ ;
break;
}
if(board[i][zong] == 7 || board[i][zong] == 'B')
{
break;
}
}
for(int i = zong; i > 0; i--)
{
if(board[heng][i] == 'p')
{
res ++;
break;
}
if(board[heng][i] == 7 || board[heng][i] == 'B')
{
break;
}
}
for(int i = zong; i < 8; i++)
{
if(board[heng][i] == 'p')
{
res ++;
break;
}
if(board[heng][i] == 7 || board[heng][i] == 'B')
{
break;
}
}
return res;
}