[LeetCode]#999. Available Captures for Rook

`Input: [[".",".",".",".",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".","R",".",".",".","p"],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".",".",".",".",".","."],[".",".",".",".",".",".",".","."]]Output: 3Explanation: 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: 0Explanation: Bishops are blocking the rook to capture any pawn.`
`Input: [[".",".",".",".",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".","p",".",".",".","."],["p","p",".","R",".","p","B","."],[".",".",".",".",".",".",".","."],[".",".",".","B",".",".",".","."],[".",".",".","p",".",".",".","."],[".",".",".",".",".",".",".","."]]Output: 3Explanation: The rook can capture the pawns at positions b5, d6 and f5`
`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':                        res+=1                        break                    elif board[x][y]=='B':                        break                    x+=a                    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)`

--

--

Interesting in any computer science.

Love podcasts or audiobooks? Learn on the go with our new app.