python lintcode 433島嶼的個數

2021-08-08 07:40:07 字數 2397 閱讀 7930

給乙個01矩陣,求不同的島嶼的個數。

0代表海,1代表島,如果兩個1相鄰,那麼這兩個1屬於同乙個島。我們只考慮上下左右為相鄰。

您在真實的面試中是否遇到過這個題? yes

樣例 在矩陣:

[ [1, 1, 0, 0, 0],

[0, 1, 0, 0, 1],

[0, 0, 0, 1, 1],

[0, 0, 0, 0, 0],

[0, 0, 0, 0, 1]

] 中有 3 個島.

class

solution:

""" @param: grid: a boolean 2d matrix

@return: an integer

"""defnumislands

(self, grid):

# write your code here

if grid is

none:return

none

if grid==:return

0#len(a)行數 len(a[0])列數

n=len(grid)

m=len(grid[0])

sumd=0

for i in range(n):

for j in range(m):

if grid[i][j]==1:

sumd+=1

#更改grid為1的四周環境

self.bian(grid,i,j)

return sumd

defbian

(self,grid,i,j):

grid[i][j]=0

#將上下左右置為0

#上若為1,置為0,且它四周也將1置為0

if i>=1

and grid[i-1][j]==1:

self.bian(grid,i-1,j)

#下若為1,置為0,且它四周也將1置為0

if i1

and grid[i+1][j]==1:

self.bian(grid,i+1,j)

#左若為1,置為0,且它四周也將1置為0

if j>=1

and grid[i][j-1]==1:

self.bian(grid,i,j-1)

#右若為1,置為0,且它四周也將1置為0

if j0])-1

and grid[i][j+1]==1:

self.bian(grid,i,j+1)

return grid

給定乙個字串,判斷其是否為乙個回文串。只包含字母和數字,忽略大小寫。

注意事項

你是否考慮過,字串有可能是空字串?這是面試過程中,面試官常常會問的問題。

在這個題目中,我們將空字串判定為有效回文。

您在真實的面試中是否遇到過這個題? yes

樣例 「a man, a plan, a canal: panama」 是乙個回文。

「race a car」 不是乙個回文。

例1:字串:abc,c,,ba

:012345678

匹配結果:

>>> a0

a8b 1 b 7

c 2 c 433

例2:字串:aa

:01匹配結果:

>>> a0

a110

#當c匹配完時,繼續進行i=i+1,a=a=1尋找數字和字母,當滿足i>=a時,左右都已經找遍

class

solution:

# @param s a string

# @return whether the string is a valid palindrome

defispalindrome

(self, s):

# write your code here

if s==none:return

none

if s=="":return

true

#將大寫字母全化為小寫字母

s=s.lower()

#字串從0開始,字串的尾應該為len(s)-1

a=len(s)-1

i=0while i#判斷是否為數字或字母

if s[i].isdigit() or s[i].isalpha():

if s[a].isdigit() or s[a].isalpha():

if s[i]!=s[a]:

return

false

i+=1

a-=1

else:

a-=1

else:

i+=1

return

true

python lintcode135 數字組合

給出乙個候選數字的set c 和目標數字 t 找到c中所有的組合,使找出的數字和為t。c中的數字可以無限制重複被選取。例如,給出候選陣列 2,3,6,7 和目標數字7,所求的解為 7 2,2,3 給出候選set 2,3,6,7 和目標數字7 返回 7 2,2,3 題目意思很明確了,這就是乙個排列組合...

python lintcode114 不同的路徑

有乙個機械人的位於乙個 m n 個網格左上角。機械人每一時刻只能向下或者向右移動一步。機械人試圖達到網格的右下角。問有多少條不同的路徑?n和m均不超過100 您在真實的面試中是否遇到過這個題?是 給出 m 3和 n 3,返回6.給出 m 4和 n 5,返回35.那麼這一題的思路就是 到某個結點的方案...

python lintcode116 跳躍遊戲

給出乙個非負整數陣列,你最初定位在陣列的第乙個位置。陣列中的每個元素代表你在那個位置可以跳躍的最大長度。判斷你是否能到達陣列的最後乙個位置。這個問題有兩個方法,乙個是貪心和動態規劃。貪心方法時間複雜度為o n 動態規劃方法的時間複雜度為為o n 2 我們手動設定小型資料集,使大家可以通過測試的兩種方...