[LeetCode]#999. Available Captures for Rook

Input: [[".",".",".",".",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".","R",".",".",".","p"],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."]]
Output: 3
In this example the rook is able to capture all the pawns.
Input: [[".",".",".",".",".",".",".","."],[".","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",".","."],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."]]
Output: 0
Bishops are blocking the rook to capture any pawn.
Input: [[".",".",".",".",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".","p",".",".",".","."],["p","p",".","R",".","p","B","."],[".",".",".",".",".",".",".","."],[".",".",".","B",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".",".",".",".",".","."]]
Output: 3
The rook can capture the pawns at positions b5, d6 and f5
  1. Find R.
  2. Search four direction, [1,0], [-1,0], [0,1], [0,-1].
  3. If find “P”, res+=1 and finish this direction search.
  4. If find “B”, break.
  5. Return res.
class Solution:
def numRookCaptures(self, board):

def total_captures(i,j):
res = 0

for a,b in [[1,0], [-1,0], [0,1], [0,-1]]:
x,y = i+a, j+b
while 0<x<8 and 0<y<8:
if board[x][y]=='p':
elif board[x][y]=='B':
return res
for i in range(len(board)):
for j in range(len(board)):
if board[i][j]=='R':
x,y = i,j
return total_captures(x, y)



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Fatboy Slim

Fatboy Slim

Interesting in any computer science.