給乙個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 我們手動設定小型資料集,使大家可以通過測試的兩種方...