959 由斜槓劃分區域 力扣

2021-10-17 11:49:43 字數 2863 閱讀 1202

題目:

在由 1 x 1 方格組成的 n x n 網格 grid 中,每個 1 x 1 方塊由 /、

或空格構成。這些字元會將方塊劃分為一些共邊的區域。(請注意,反斜槓字元是轉義的,因此 \ 用 「\」 表示。)。返回區域的數目。

示例 1:

輸入:

[" /",

"/ "

]輸出:2

解釋:2x2 網格如下:

示例 2:

輸入:

[" /",

" "]

輸出:1

解釋:2x2 網格如下:

示例 3:

輸入:

[「\/」,

「/\」

]輸出:4

解釋:(回想一下,因為 \ 字元是轉義的,所以 「\/」 表示 /,而 「/\」 表示 /\。)

2x2 網格如下:

示例 4:

輸入:

[「/\」,

「\/」

]輸出:5

解釋:(回想一下,因為 \ 字元是轉義的,所以 「/\」 表示 /\,而 「\/」 表示 /。)

2x2 網格如下:

示例 5:

輸入:

[「//」,

"/ "

]輸出:3

解釋:2x2 網格如下:

參考了題解中的深度優先搜尋的方法,先是通讀了一遍題解的思路然後理解了一下,之後又嘗試了自己復現一下,最終發現判斷』/『和』\'的時候出現了疏忽,不過還好找到了問題。

**:

class

solution

:def

regionsbyslashes

(self, grid: list[

str])-

>

int:

#建立圖,把grid中的每乙個小的分割變成3x3的格仔

new_grid=

x_=len(grid[0]

) y_=

len(grid)

for a in

range(3

*y_)

:#根據grid的豎向長度乘以3進行迴圈[0

for b in

range(3

*x_)])

#根據grid的寬度乘三進行新增

for y in

range

(y_)

:for x in

range

(x_)

:#b為空格的情況就不需要進行判斷了,因為在上面建立new_grid的時候按全是空格新增的

if grid[y]

[x]==

'/':

new_grid[

3*y][3

*x+2]=

1 new_grid[

3*y+1]

[3*x+1]=

1 new_grid[

3*y+2]

[3*x]=

1if grid[y]

[x]==

'\\'

: new_grid[

3*y][3

*x]=

1 new_grid[

3*y+1]

[3*x+1]=

1 new_grid[

3*y+2]

[3*x+2]=

1def

dfs(y,x):if

0<=y<

3*y_ and

0<=x<

3*x_ and new_grid[y]

[x]==0:

#判斷當前格仔是否為0 並且座標是否還在範圍之內

new_grid[y]

[x]=

1#將當前格仔變為1防止之後出現問題

#從當前格仔向上下左右分開判斷如果還是0那麼與當前格仔屬於同一部分,如果為1則是遇到邊界或者其他部分

dfs(y+

1,x)

dfs(y-

1,x)

dfs(y,x+1)

dfs(y,x-1)

result=

0for y in

range(3

*y_)

:for x in

range(3

*x_)

:if new_grid[y]

[x]==0:

#找到乙個0就相當於找到了乙個部分

result+=

1 dfs(y,x)

return result

959 由斜槓劃分區域

在由 1 x 1 方格組成的 n x n 網格 grid 中,每個 1 x 1 方塊由 或空格構成。這些字元會將方塊劃分為一些共邊的區域。返回區域的數目。思路 首先需要思考題目轉換,這是求連通塊個數的題目。因為是連通塊個數問題,所以用並查集解決。然後就只要考慮幾個問題就好了 1.最小單位應該是多大?...

力扣 由斜槓劃分區域

在由 1 x 1 方格組成的 n x n 網格grid中,每個 1 x 1 方塊由 或空格構成。這些字元會將方塊劃分為一些共邊的區域。請注意,反斜槓字元是轉義的,因此 用 表示。返回區域的數目。示例 1 輸入 輸出 2 解釋 2x2 網格如下 示例 2 輸入 輸出 1 解釋 2x2 網格如下 示例 ...

leetcode 959 由斜槓劃分區域

目錄 一 題目內容 二 解題思路 三 在由 1 x 1 方格組成的 n x n 網格 grid 中,每個 1 x 1 方塊由 或空格構成。這些字元會將方塊劃分為一些共邊的區域。請注意,反斜槓字元是轉義的,因此 用 表示。返回區域的數目。示例 1 輸入 輸出 2 解釋 2x2 網格如下 示例 2 輸入...