车的可用捕获量(3.26leetcode每日打卡)
在一个 8 x 8 的棋盘上,有一个白色车(rook)。也可能有空方块,白色的象(bishop)和黑色的卒(pawn)。它们分别以字符 “R”,“.”,“B” 和 “p” 给出。大写字符表示白棋,小写字符表示黑棋。
车按国际象棋中的规则移动:它选择四个基本方向中的一个(北,东,西和南),然后朝那个方向移动,直到它选择停止、到达棋盘的边缘或移动到同一方格来捕获该方格上颜色相反的卒。另外,车不能与其他友方(白色)象进入同一个方格。
返回车能够在一次移动中捕获到的卒的数量。
输入:[[".",".",".",".",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".","R",".",".",".","p"],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."]]
输出:3
输出:3
输入:[[".",".",".",".",".",".",".","."],[".","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
解释:
象阻止了车捕获任何卒。
输出:0
解释:
象阻止了车捕获任何卒。
思路:题目很简单就是简单的遍历四个方向即可,主要是好好审题,比如抓到一个卒就可停止,好好审题方能事半功倍。
1 int numRookCaptures(char** board, int boardSize, int* boardColSize) 2 { 3 int cnt = 0; 4 int row,col; 5 int i,j; 6 7 //搜寻白色车所在位置 8 //车 R 9 //象 B 10 //卒 p 11 //空方格 . 12 for(i = 0; i < 8; i++) 13 { 14 for(j = 0; j < 8; j++) 15 { 16 if(board[i][j] == 'R') 17 { 18 row = i; 19 col = j; 20 break; 21 } 22 } 23 } 24 25 //搜寻右边 26 for(i = col+1; i < 8; i++) 27 { 28 if(board[row][i] == 'p') 29 { 30 cnt++; 31 break; 32 } 33 if(board[row][i] == 'B') 34 break; 35 } 36 37 //搜寻左边 38 for(i = col-1; i >= 0; i--) 39 { 40 if(board[row][i] == 'p') 41 { 42 cnt++; 43 break; 44 } 45 if(board[row][i] == 'B') 46 break; 47 } 48 49 //搜寻下边 50 for(i = row+1; i < 8; i++) 51 { 52 if(board[i][col] == 'p') 53 { 54 cnt++; 55 break; 56 } 57 if(board[i][col] == 'B') 58 break; 59 } 60 61 //搜寻上边 62 for(i = row-1; i >= 0; i--) 63 { 64 if(board[i][col] == 'p') 65 { 66 cnt++; 67 break; 68 } 69 if(board[i][col] == 'B') 70 break; 71 } 72 return cnt; 73 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端