parameters: (self, matrix)
return_statement: return res
docstring: :type matrix: List[List[str]]
          :rtype: int
docstring_summary: :type matrix: List[List[str]]
          :rtype: int
docstring_tokens: : type matrix : List [ List [ str ]] : rtype : int
function: def maximalRectangle(self, matrix):
          """
          :type matrix: List[List[str]]
          :rtype: int
          """
          if matrix is None or len(matrix) == 0 or len(matrix[0]) == 0:
              return 0
          
          m = len(matrix)
          n = len(matrix[0])
          
          nums = [0 for _ in range(n + 1)]
          
          res = 0
          for i in range(m):
              for j in range(n):
                  if matrix[i][j] == '1':
                      nums[j] += 1
                  else:
                      nums[j] = 0
                      
              res = max(res, self.maxArea(nums))
              
          return res
function_tokens: def maximalRectangle ( self , matrix ) : if matrix is None or len ( matrix ) == 0 or len ( matrix [ 0 ] ) == 0 : return 0 m = len ( matrix ) n = len ( matrix [ 0 ] ) nums = [ 0 for _ in range ( n + 1 ) ] res = 0 for i in range ( m ) : for j in range ( n ) : if matrix [ i ] [ j ] == '1' : nums [ j ] += 1 else : nums [ j ] = 0 res = max ( res , self . maxArea ( nums ) ) return res