当前位置: 首页> 游戏> 攻略 > 销售管理软件新技术_重庆门户网站有哪些_百度网络电话_北京seo推广优化

销售管理软件新技术_重庆门户网站有哪些_百度网络电话_北京seo推广优化

时间:2025/7/9 13:45:18来源:https://blog.csdn.net/lebrongao/article/details/144294022 浏览次数:0次
销售管理软件新技术_重庆门户网站有哪些_百度网络电话_北京seo推广优化

一、问题描述

给定一个 8 x 8 的棋盘,只有一个 白色的车,用字符 '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 的卒。
import collections
from heapq import heapify, heappop, heappush
from math import inf
from typing import List, Counter
from typing import Optional
from clang.cindex import Configfrom pyasn1.compat.octets import null
board= [[".",".",".",".",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".","R",".",".",".","p"],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."]]
class Solution:def numRookCaptures(self, board: List[List[str]]) -> int:m, n, k = 0, 0, 0for i in range(8):for j in range(8):if board[i][j] == "R":m = in = jbreakdx, dy = [0,1,0,-1],[1,0,-1,0]for i in range(4):step = 1while True:tx = m + step * dx[i]ty = n + step * dy[i]if tx < 0 or ty < 0 or tx >= 8 or ty >= 8 or board[tx][ty] == "B":breakif board[tx][ty] == "p":k += 1breakstep += 1return kS = Solution()
print(S.numRookCaptures(board))

二、结果展示

3

在矩阵中上下左右移动可以参考迷宫问题icon-default.png?t=O83Ahttps://blog.csdn.net/lebrongao/article/details/143249610?spm=1001.2014.3001.5501

关键字:销售管理软件新技术_重庆门户网站有哪些_百度网络电话_北京seo推广优化

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: