1. 题目

在一个 8 x 8 的棋盘上,有一个白色车(rook)。也可能有空方块,白色的象(bishop)和黑色的卒(pawn)。它们分别以字符 “R”,“.”,“B” 和 “p” 给出。大写字符表示白棋,小写字符表示黑棋。

车按国际象棋中的规则移动:它选择四个基本方向中的一个(北,东,西和南),然后朝那个方向移动,直到它选择停止、到达棋盘的边缘或移动到同一方格来捕获该方格上颜色相反的卒。另外,车不能与其他友方(白色)象进入同一个方格。

返回车能够在一次移动中捕获到的卒的数量。

提示:
board.length == board[i].length == 8
board[i][j] 可以是 'R','.','B' 或 'p'
只有一个格子上存在 board[i][j] == 'R'

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/available-captures-for-rook
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {public:int numRookCaptures(vector<vector<char>>& board) {vector<vector<int>> dir = {{1,0},{0,1},{0,-1},{-1,0}};int count = 0, x = -1, y = -1, i, j;for(i = 0; i < 8; ++i){for(j = 0; j < 8; ++j)if(board[i][j] == 'R'){x = i, y = j;break;}if(x != -1)//找到车的位置x,ybreak;}for(int k = 0; k < 4; ++k){    // 4个方向查找小兵 pi = x, j = y;while(i>=0 && i<8 && j>=0 && j<8 && board[i][j] != 'B'){   //没有自己人 B 挡着if(board[i][j] == 'p'){ //找到小兵 p,结束count++;break;}i += dir[k][0];//在这个方向上移动j += dir[k][1];//在这个方向上移动}}return count;}
};

LeetCode 999. 车的可用捕获量相关推荐

  1. LeetCode:999. 车的可用捕获量

    999. 车的可用捕获量 题目: 解题思路: 源码: 踩坑点: 题目: 解题思路: 其实很简单,先找到车的位置,在扫描车所在的行和列判断即可 源码: int numRookCaptures(char* ...

  2. 【LeetCode】999. 车的可用捕获量

    题目链接: 999. 车的可用捕获量 题目描述: 在一个 8 x 8 的棋盘上,有一个白色车(rook).也可能有空方块,白色的象(bishop)和黑色的卒(pawn).它们分别以字符 "R ...

  3. LeetCode(999)——车的可用捕获量(JavaScript)

    在一个 8 x 8 的棋盘上,有一个白色车(rook).也可能有空方块,白色的象(bishop)和黑色的卒(pawn).它们分别以字符 "R",".",&quo ...

  4. 每日一题,每日一练。11车的可用捕获量(半夜两点在棋盘上左右横跳),

    在一个 8 x 8 的棋盘上,有一个白色车(rook).也可能有空方块,白色的象(bishop)和黑色的卒(pawn).它们分别以字符 "R",".",&quo ...

  5. python【力扣LeetCode算法题库】999-车的可用捕获量(DFS)

    车的可用捕获量 在一个 8 x 8 的棋盘上,有一个白色车(rook).也可能有空方块,白色的象(bishop)和黑色的卒(pawn).它们分别以字符 "R",".&qu ...

  6. LeetCode ----车的可捕获量(JavaScript解法)

    一.题目描述 #### 二.实例 三.解题思路 我们可以用两层循环来对它进行遍历,当遇到R时记录它的横纵坐标 再对四个方向依次进行一个遍历,当遇到B时直接break,当遇到p时num++,再break ...

  7. Leetcode 999. Available Captures for Rook

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 1. Description 2. Solution **解析:**Version 1,先找到R,再分别统计四个方 ...

  8. 【leetcode】解题日记(未完待续)

    开坑,有生之年系列,希望有一天能解出 leetcodeleetcodeleetcode 上的所有题目. 写题解好麻烦,懒得写(手动狗头),进度如下,不定期更新. 总题数 已解答 题解数 2058 23 ...

  9. Java算法:LeetCode算法Java版合集513-1110题

    513. 找树左下角的值 题目描述 给定一个二叉树,在树的最后一行找到最左边的值. 示例 1: 输入:2/ \1 3 输出: 1 示例 2: 输入:1/ \2 3/ / \4 5 6/7 输出: 7 ...

最新文章

  1. Java 增强型的for循环 for each
  2. 深入理解分布式技术 - 分库分表后的扩容解决方案
  3. git提交代码到github时出现everything up-to-date,但是代码没有上传成功
  4. Hadoop的学习前奏(二)——Hadoop集群的配置
  5. 前有教授被骗千万,后有某重点高校青年教师晒出月薪900的工资条,大学老师工资待遇如何?...
  6. 数字阅读体验的平台距离我们还有多远?
  7. 万特电能表接线仿真系统 软件_【学习软件】嘘!此3款10万级专业解锁版神器全网已绝迹!(物理实验室)...
  8. 【发布】JEECG-P3 新主题后台风格(H5扁平化)
  9. linux中启动不了服务,Linux系统xinetd服务启动不了
  10. 交换机以太网端口三种链路类型
  11. bzoj千题计划278:bzoj4590: [Shoi2015]自动刷题机
  12. python 组合求和_39. 组合总和(Python)
  13. python request 接口自动化设计
  14. php iis 重启服务,重新启动IIS即可生效
  15. Binutils - c++filt工具
  16. DPDK-l3fwd示例IPv6测试
  17. 非线性光学散射偏微分方程组的matlab求解仿真
  18. MSI_MSI-X中断之体验与使用
  19. MIPI RFFE扫盲(1)
  20. 关于xxxxxxRepository.search()方法一个分页的小陷阱

热门文章

  1. 深入浅出学java_《深入浅出学JAVA开发初级》
  2. python安装opencv出现错误_Python3安装OpenCV出错,如何解决?
  3. VMware Ubuntu 全屏问题解决
  4. 斯柯达柯珞克显示服务器错误,斯柯达柯珞克原来还有四驱的版本,不信你看!...
  5. java arraylist string_在Java ArrayList String中使用contains
  6. red hat linux 远程,Red Hat Linux 远程桌面 – 如何设置
  7. 前端小插件之手写js循环滚动特效
  8. angularjs的表单验证
  9. DB2操作指南及命令大全word版
  10. modelsim 的高效使用