车的可用捕获量

给定一个8 * 8 的棋盘,棋盘上有白色的车,白色的像,空白格,黑色卒,分别用R,B,.,p表示

R可以向上下左右四个方向移动,遇到B的时候或者p的时候停止

分别求往四个方向上能遇到几个p

 

题目比较简单,就是找到R,然后四个方向走就是了。

https://leetcode-cn.com/problems/available-captures-for-rook/

 

class Solution {
public:
    int numRookCaptures(vector<vector<char>>& board) {
        int res = 0;
        for(int i = 0; i < 8; i++){
            for(int j = 0; j < 8; j++){
                if(board[i][j] == 'R'){
                    for(int k = i-1; k >= 0; k--){
                        if(board[k][j] == 'p'){
                            res++;
                            break;;
                        }
                        if(board[k][j] == 'B') break;
                    }
                    for(int k = i+1; k < 8; k++){
                        if(board[k][j] == 'p'){
                            res++;
                            break;;
                        }
                        if(board[k][j] == 'B') break;
                    }
                    for(int k = j+1; k < 8; k++){
                        if(board[i][k] == 'p'){
                             res++; 
                             break;
                        }
                        if(board[i][k] == 'B') break;
                    }
                    for(int k = j-1; k >= 0; k--){
                        if(board[i][k] == 'p'){
                             res++; 
                             break;
                        }
                        if(board[i][k] == 'B') break;
                    }
                }
            }
        }
        return res;
    }
};

 

posted @ 2020-03-26 21:00  jenningszheng  阅读(217)  评论(0编辑  收藏  举报