高階程式設計技術hw week9

2021-08-20 00:12:28 字數 2041 閱讀 6073

leetcode #67 add binary

**如下:

class solution:

def addbinary(self, a, b):

""":type a: str

:type b: str

:rtype: str

"""if len(a)len(b):

for i in range(len(a)-len(b)):

b='0'+b

l=len(a)

flag=0

ret=''

for i in range(l):

ret=str((int(a[l-1-i])+int(b[l-1-i])+flag)%2)+ret

flag=int((int(a[l-1-i])+int(b[l-1-i])+flag)/2)

if flag==1:

ret='1'+ret

return ret

解題思路:

此題一開始我所採用的方法是將兩個二進位制字串轉換成兩個十進位制數,然後相加後再轉換為二進位制數字串。但發現這樣會存在溢位的問題。所以我採用了將較短的字串前填充0,直到兩個字串等長,再從後向前按位相加,並儲存乙個進製變數。每個加出來的數放在結果字串的最前端。

leetcode #74 search a 2d matrix

**如下:

class solution:

def searchrow(self,matrix,target,begin,end):

if begin+1==end:

return begin

if targetmatrix[int((begin+end)/2)][0]:

return self.searchrow(matrix,target,int((begin+end)/2),end)

elif target==matrix[int((begin+end)/2)][0]:

return int((begin+end)/2)

def searchcol(self,matrix,target,begin,end):

if begin+1==end:

return begin

if targetmatrix[0][int((begin+end)/2)]:

return self.searchcol(matrix,target,int((begin+end)/2),end)

elif target==matrix[0][int((begin+end)/2)]:

return int((begin+end)/2)

def searchmatrix(self, matrix, target):

""":type matrix: list[list[int]]

:type target: int

:rtype: bool

"""if len(matrix)==0:

return false

if len(matrix[0])==0:

return false

if targetmatrix[len(matrix)-1][len(matrix[0])-1]:

return false

row=self.searchrow(matrix,target,0,len(matrix))

col=self.searchcol(matrix,target,0,len(matrix[0]))

for i in range(len(matrix[0])):

if matrix[row][i]==target:

return true

for i in range(len(matrix)):

if matrix[i][col]==target:

return true

return false

解題思路:

對行列分別進行二分搜尋,然後在搜尋出的行和列中分別尋找是否存在target。

高階程式設計技術hw week8

leetcode 11 container with most water 如下 class solution def maxarea self,height type height list int rtype int maxwater 0 i 0j len height 1 while i解題思...

高階程式設計技術作業 5

題目描述 使用乙個for迴圈列印數字1 20 包含 展示 for number in range 1,21 print number input null output 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 題目描述 通過給函式rang...

高階程式設計技術作業 7

題目描述 使用乙個字典來儲存一些人喜歡的數字。請想5個人的名字,並將這些名字用作字典中 的鍵 想出每個人喜歡的乙個數字,並將這些數字作為值儲存在字典中。列印每個人的名字和喜歡 的數字。展示 dic for name,number in dic.items print name str number ...