LeetCode:999.车的可用捕获量的非方向数组解法
class Solution {
public:
int numRookCaptures(vector< vector<char> >& board) {
//寻找车
bool rookFound=false; //假设没找到
int x,y; //用于保存车的坐标
for (int i=0; i < board.size(); ++i)
{
for (int j=0; j < board.size(); ++j)
{
if (board[i][j]=='R')
{
rookFound=true;
x=i;y=j;
break;
}
}
if(rookFound)break;//如果找到了 退出循环
}
int np=0; //题目要求的值
for(int k = 0 ; k < board.size() ; ++k){
bool p=false,R=false,over=false;
//分别表示 有没有合适的p 有没有车 有没有结束
switch(board[x][k]){
case 'p':
if (R)
{
np++;
over=true;
}
else p=true;
break;
case 'B':
if(R) over=true;
else p=false;
break;
case 'R':
R=true;
if(p) np++;
p=false;
break;
}
if(over)break;
}
//接下来对于第y列再查一遍
for(int k = 0 ; k < board.size() ; ++k){
bool p=false,R=false,over=false;
//分别表示 有没有合适的p 有没有车 有没有结束
switch(board[k][y]){
case 'p':
if (R)
{
np++;
over=true;
}
else p=true;
break;
case 'B':
if(R) over=true;
else p=false;
break;
case 'R':
R=true;
if(p) np++;
p=false;
break;
}
if(over)break;
}
return np;
}
};
为什么就得不到正确答案呢?