999. Available Captures for Rook


class Solution:
    def calcu(self,ele:List[str],loc):
        index_p = [-1]*2 #只记录离R最近位置的p和B(左右)
        index_B = [-1]*2
        left,right = 0,0
        for i in range(len(ele)):
            if ele[i] is 'p':
                if i < loc:
                    index_p[0]=i #左边的取最大值
                else:
                    if index_p[1]<0:index_p[1] = i #右边的取最小值
            elif ele[i] is 'B':
                if i=0:#p在R的左边
            if b0>=0: #B在R的左边,有值
                if p0=0:#p在R的右边
            if b1>=0:#B在R的右边,有值
                if p1>loc and b1>p1:
                    right = 1
            else:#B右边没有值
                if p1>loc:
                    right = 1
                
        return left,right
                
    def numRookCaptures(self, board: List[List[str]]) -> int:
        index_R_row = 0 
        index_R_col = 0
        count = 0
        col = []
        row = []
        for a in board:
            index_R_row += 1
            if 'R' in a:
                for i in range(len(a)):
                    if a[i]=='R':
                        index_R_col = i
                        col = [x[i] for x in board]
                        row = a
                        break
                break
                
        
        r1,r2 = self.calcu(row,index_R_col)
        r3,r4 = self.calcu(col,index_R_row-1)
        count = r1+r2+r3+r4
        return count

  40ms,13M

my god,写这个代码花了我半天时间,估计以后都不想看第二遍了。。。。。