给定一幅黑白像素组成的图像, 计算黑色孤独像素的数量。
图像由一个由‘B’和‘W’组成二维字符数组表示, ‘B’和‘W’分别代表黑色像素和白色像素。
黑色孤独像素指的是在同一行和同一列不存在其他黑色像素的黑色像素。
示例:
输入: [['W', 'W', 'B'], ['W', 'B', 'W'], ['B', 'W', 'W']] 输出: 3 解析: 全部三个'B'都是黑色孤独像素。
注意:
- 输入二维数组行和列的范围是 [1,500]。
思路:
找到所有的B,然后在同一行和同一列判断有没有别的B。
class Solution(object):
def findLonelyPixel(self, picture):
"""
:type picture: List[List[str]]
:rtype: int
"""
if not picture or not picture[0]:
return 0
m, n = len(picture), len(picture[0])
res = 0
def check(x0, y0):
for x in range(0, m): #同一列
if picture[x][y0] == "B" and x != x0:
return False
for y in range(0, n): #同一行
if picture[x0][y] == "B" and y != y0:
return False
return True
for i in range(m):
for j in range(n):
if picture[i][j] == "B" and check(i, j):
res += 1
return res