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

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

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

示例 1:

输入:[[".",".",".",".",".",".",".","."],[".",".",".",“p”,".",".",".","."],[".",".",".",“R”,".",".",".",“p”],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."],[".",".",".",“p”,".",".",".","."],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."]]
输出:3
解释: 在本例中,车能够捕获所有的卒。

示例 2:

输入:[[".",".",".",".",".",".",".","."],[".",“p”,“p”,“p”,“p”,“p”,".","."],[".",“p”,“p”,“B”,“p”,“p”,".","."],[".",“p”,“B”,“R”,“B”,“p”,".","."],[".",“p”,“p”,“B”,“p”,“p”,".","."],[".",“p”,“p”,“p”,“p”,“p”,".","."],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."]]
输出:0
解释: 象阻止了车捕获任何卒。

示例 3:

输入:[[".",".",".",".",".",".",".","."],[".",".",".",“p”,".",".",".","."],[".",".",".",“p”,".",".",".","."],[“p”,“p”,".",“R”,".",“p”,“B”,"."],[".",".",".",".",".",".",".","."],[".",".",".",“B”,".",".",".","."],[".",".",".",“p”,".",".",".","."],[".",".",".",".",".",".",".","."]]
输出:3
解释: 车可以捕获位置 b5,d6 和 f5 的卒。

提示:

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

我承认我一开始找车完以后写了个深搜(淦),后来发现这题练得不是深搜,就是遍历写法==于是写了个四个循环(写的更多了,淦)

找到车的位置,向四个方向进行深搜,搜到棋或边界退出,如果搜到卒先+1再退出

代码如下

class Solution:def numRookCaptures(self, board: List[List[str]]) -> int:flag=1co=0row=0li=0for i in range(len(board)):for ii in range(len(board[0])):if(board[i][ii]=="R"):row=ili=iiflag=0breakif(flag==0):breakfor c in range(li+1,len(board)):try:if(board[row][c]=="p"):co=co+1breakelif(board[row][c]=="B"):breakexcept IndexError:breakfor c in range(li-1,-1,-1):try:if(board[row][c]=="p"):co=co+1breakelif(board[row][c]=="B"):breakexcept IndexError:breakfor d in range(row+1,len(board)):try:if(board[d][li]=="p"):co=co+1breakelif(board[d][li]=="B"):breakexcept IndexError:breakfor d in range(row,-1,-1):try:if(board[d][li]=="p"):co=co+1breakelif(board[d][li]=="B"):breakexcept IndexError:breakreturn co

内存:我真的一滴都不剩了

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

  1. 田蕴章书法讲座《每日一题,每日一字》(1) 文字整理 ——永字八法

    近日发现天津南开田蕴章老师讲座<每日一题,每日一字>,对了解文化和书写挺好的,所以简单的整理成文字供以后使用. 永字八法.永字八法其实就是「永」这个字的八个笔画,代表中国书法中笔画的大体, ...

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

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

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

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

  4. 【每日一题】8月11日题目精讲—矩阵消除游戏

    来源:牛客网: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 牛妹在玩一个名为矩阵消除的 ...

  5. 牛客网 【每日一题】6月11日题目精讲 背包

    链接: 文章目录 题目描述 题解: 代码: 题目描述 Applese有1个容量为v的背包,有n个物品,每一个物品有一个价值ai,以及一个大小bi 然后他对此提出了自己的疑问,如果我不要装的物品装的价值 ...

  6. AcWing - 寒假每日一题2023(DAY 11——DAY 15)

    文章目录 一.AcWing 4656. 技能升级(困难) 1. 实现思路 2. 实现代码 二.AcWing 4454. 未初始化警告(简单) 1. 实现思路 2. 实现代码 三.AcWing 4509 ...

  7. 【每日一题】打卡 11

    原题链接:Problem - C - Codeforces 可以利用二分答案求解,假设可做n个, 判断每种原料总花费够不够总钱数 #include<bits/stdc++.h> using ...

  8. 牛客网 【每日一题】5月11日题目精讲 Moovie Mooving

    题目链接 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 Bessie is out at t ...

  9. 每日一题.每日一练 .6.水壶问题(写完感觉自己能去讲课版)

    有两个容量分别为 x升 和 y升 的水壶以及无限多的水.请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水? 如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水. 你允许: 装满任意 ...

最新文章

  1. Windows Server 2008 R2 做开发需要开启那些角色和组件
  2. Windows下lex 与 yacc的使用
  3. Linux vim复制操作
  4. SAP Leonardo机器学习图片相似度打分API的测试报告
  5. 硬件加速下webview切换闪屏_网页渲染性能优化 —— 性能优化下
  6. thread local性能 c++_MySQL 5.7 amp; MySQL 8.0 性能对比
  7. 自然水体辐射特性与数值模拟 pdf_自然科学基金|水下消油剂处理对海底溢油输移扩散的影响实验及数值模拟研究...
  8. 网站网络流量的极限,你考虑过么?
  9. Spark.shuffle.io.maxRetries参数
  10. 通过minicom传送文件的相关配置及使用方法
  11. MSSQL coalesce系统函数简介
  12. 第八章 机器人语音交互 课后作业
  13. java虚拟机启动失败_Eclipse 启动提示java虚拟机启动失败
  14. 机器人领域 期刊与会议
  15. python多线程中join()的理解
  16. 如何安装java-jdk
  17. 腾讯:互联网金融行业HBase实践与创新
  18. Coin Changing
  19. 教你怎么打印出实际大小的身份证
  20. 【测试】自动化测试01

热门文章

  1. 中秋征文 | 【云原生之Docker】使用docker部署内网穿透工具FRP
  2. python输出整数部分和小数_Python 正则表达式:只要整数和小数
  3. 企业视频会议系统接入互联网的八种方法
  4. 计算机考研英语一历年国家线,历年考研英语国家线汇总(2009-2020)
  5. 作为互联网创业城市的杭州
  6. ABB机器人PCSDK使用(一)
  7. 基于Java的图书馆借阅管理系统的设计与实现--毕业开题报告
  8. 万能视频播放器:恒星播放器 for Mac(1.500中文免费)
  9. java spring 使用GuideController实现信息的多步采集
  10. 计算机学习 常用站点