LeetCode 999. 车的可用捕获量
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. 车的可用捕获量相关推荐
- LeetCode:999. 车的可用捕获量
999. 车的可用捕获量 题目: 解题思路: 源码: 踩坑点: 题目: 解题思路: 其实很简单,先找到车的位置,在扫描车所在的行和列判断即可 源码: int numRookCaptures(char* ...
- 【LeetCode】999. 车的可用捕获量
题目链接: 999. 车的可用捕获量 题目描述: 在一个 8 x 8 的棋盘上,有一个白色车(rook).也可能有空方块,白色的象(bishop)和黑色的卒(pawn).它们分别以字符 "R ...
- LeetCode(999)——车的可用捕获量(JavaScript)
在一个 8 x 8 的棋盘上,有一个白色车(rook).也可能有空方块,白色的象(bishop)和黑色的卒(pawn).它们分别以字符 "R",".",&quo ...
- 每日一题,每日一练。11车的可用捕获量(半夜两点在棋盘上左右横跳),
在一个 8 x 8 的棋盘上,有一个白色车(rook).也可能有空方块,白色的象(bishop)和黑色的卒(pawn).它们分别以字符 "R",".",&quo ...
- python【力扣LeetCode算法题库】999-车的可用捕获量(DFS)
车的可用捕获量 在一个 8 x 8 的棋盘上,有一个白色车(rook).也可能有空方块,白色的象(bishop)和黑色的卒(pawn).它们分别以字符 "R",".&qu ...
- LeetCode ----车的可捕获量(JavaScript解法)
一.题目描述 #### 二.实例 三.解题思路 我们可以用两层循环来对它进行遍历,当遇到R时记录它的横纵坐标 再对四个方向依次进行一个遍历,当遇到B时直接break,当遇到p时num++,再break ...
- Leetcode 999. Available Captures for Rook
文章作者:Tyan 博客:noahsnail.com | CSDN | 简书 1. Description 2. Solution **解析:**Version 1,先找到R,再分别统计四个方 ...
- 【leetcode】解题日记(未完待续)
开坑,有生之年系列,希望有一天能解出 leetcodeleetcodeleetcode 上的所有题目. 写题解好麻烦,懒得写(手动狗头),进度如下,不定期更新. 总题数 已解答 题解数 2058 23 ...
- Java算法:LeetCode算法Java版合集513-1110题
513. 找树左下角的值 题目描述 给定一个二叉树,在树的最后一行找到最左边的值. 示例 1: 输入:2/ \1 3 输出: 1 示例 2: 输入:1/ \2 3/ / \4 5 6/7 输出: 7 ...
最新文章
- Java 增强型的for循环 for each
- 深入理解分布式技术 - 分库分表后的扩容解决方案
- git提交代码到github时出现everything up-to-date,但是代码没有上传成功
- Hadoop的学习前奏(二)——Hadoop集群的配置
- 前有教授被骗千万,后有某重点高校青年教师晒出月薪900的工资条,大学老师工资待遇如何?...
- 数字阅读体验的平台距离我们还有多远?
- 万特电能表接线仿真系统 软件_【学习软件】嘘!此3款10万级专业解锁版神器全网已绝迹!(物理实验室)...
- 【发布】JEECG-P3 新主题后台风格(H5扁平化)
- linux中启动不了服务,Linux系统xinetd服务启动不了
- 交换机以太网端口三种链路类型
- bzoj千题计划278:bzoj4590: [Shoi2015]自动刷题机
- python 组合求和_39. 组合总和(Python)
- python request 接口自动化设计
- php iis 重启服务,重新启动IIS即可生效
- Binutils - c++filt工具
- DPDK-l3fwd示例IPv6测试
- 非线性光学散射偏微分方程组的matlab求解仿真
- MSI_MSI-X中断之体验与使用
- MIPI RFFE扫盲(1)
- 关于xxxxxxRepository.search()方法一个分页的小陷阱
热门文章
- 深入浅出学java_《深入浅出学JAVA开发初级》
- python安装opencv出现错误_Python3安装OpenCV出错,如何解决?
- VMware Ubuntu 全屏问题解决
- 斯柯达柯珞克显示服务器错误,斯柯达柯珞克原来还有四驱的版本,不信你看!...
- java arraylist string_在Java ArrayList String中使用contains
- red hat linux 远程,Red Hat Linux 远程桌面 – 如何设置
- 前端小插件之手写js循环滚动特效
- angularjs的表单验证
- DB2操作指南及命令大全word版
- modelsim 的高效使用