Q:
给定一个二维的甲板, 请计算其中有多少艘战舰。 战舰用 'X'
表示,空位用 '.'
表示。 你需要遵守以下规则:
- 给你一个有效的甲板,仅由战舰或者空位组成。
- 战舰只能水平或者垂直放置。换句话说,战舰只能由
1xN
(1 行, N 列)组成,或者Nx1
(N 行, 1 列)组成,其中N可以是任意大小。 - 两艘战舰之间至少有一个水平或垂直的空位分隔 - 即没有相邻的战舰。
示例 :
X..X ...X ...X
链接:https://leetcode-cn.com/problems/battleships-in-a-board/description/
思路:对于每一个“X”,当且仅当X的两个方向,即正上和正左均为“.”的或是边际的时候,计数加1
代码:
class Solution(object):
def countBattleships(self, board):
"""
:type board: List[List[str]]
:rtype: int
"""
res = 0
for i in range(len(board)):
for j in range(len(board[0])):
if ((board[i][j] == 'X') and(i == 0 or board[i-1][j] == '.') and (j == 0 or board[i][j-1] == '.')):
res += 1
return res