【LeetCode】每日一题 2024_12_6 可以被一步捕获的棋子数(模拟)
前言
每天和你一起刷 LeetCode 每日一题~
LeetCode 启动!
题目:可以被一步捕获的棋子数
代码与解题思路
先读题:题目给了我吗 8*8 的棋盘,问车子一步之内能吃的棋子有几个,只能上下左右走,可能被象阻挡
简单题简单做,找到车的位置,然后遍历上下左右,能吃就 ans++,遇到阻挡就 break 即可,代码如下:(屎山,但理解容易,简单有效)
func numRookCaptures(board [][]byte) (ans int) {
// 先找出车的位置
x, y, f := 0, 0, 0
for i, v := range board {
for j, v2 := range v {
if v2 == 'R' {
x, y, f = i, j, 1
break
}
}
if f == 1 {
break
}
}
// 然后遍历上下左右
for i, j := x, y; i >= 0; i-- { // 上
if board[i][j] == 'B' {
break
}
if board[i][j] == 'p' {
ans++
break
}
}
for i, j := x, y; i < 8; i++ { // 下
if board[i][j] == 'B' {
break
}
if board[i][j] == 'p' {
ans++
break
}
}
for i, j := x, y; j >= 0; j-- { // 左
if board[i][j] == 'B' {
break
}
if board[i][j] == 'p' {
ans++
break
}
}
for i, j := x, y; j < 8; j++ { // 右
if board[i][j] == 'B' {
break
}
if board[i][j] == 'p' {
ans++
break
}
}
return ans
}
每天进步一点点,我们明天不见不散~
可以和我刷一辈子的每日一题吗?
一题一题,积累起来就是一辈子。
原文地址:https://blog.csdn.net/Locky136/article/details/144290243
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!