一、引言
本人通過對劍指Offer的學習,發現其中的代碼均爲C++實現,對部分🏦不太友好,於是乎本人將所有題目的Python版本代碼共享出來。注:該部分以牛客上的順序爲例,並且均通過牛客上的測試
二、編程題
1、 二維數組中的查找
- 題目描述:在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。
- 考查知識點:查找、數組
- 代碼:
class Solution: # array 二維列表 def Find(self, target, array): # write code here rows = len(array)-1 cols = len(array[0])-1 i = rows j = 0 if len(array)==0 or len(array[0])==0: return False else: while j<=rows and i>=0: if target<array[i][j]: i-=1 elif target>array[i][j]: j+=1 else: return True return False
2、 替換空格
- 題目描述:請實現一個函數,將一個字符串中的每個空格替換成“%20”。例如,當字符串爲We Are Happy.則經過替換之後的字符串爲We%20Are%20Happy。
- 考查知識點:字符串
- 代碼:
class Solution: # s 源字符串 def replaceSpace(self, s): # write code here result = '' for i in s: if i==' ': result+='%20' else: result+=i return result
3、 從尾到頭打印鏈表
- 題目描述:輸入一個鏈表,按鏈表從尾到頭的順序返回一個ArrayList。
- 考查知識點:鏈表
- 代碼: