使用python實現《劍指offer》面試題ヾ(◍°∇°◍)ノ゙,以此記錄。
題目:實現單例模式
單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中,應用該模式的乙個類只有乙個例項。即乙個類只有乙個物件例項。
原理:使用模組時,第一次匯入會生成.pyc檔案(存放相應目錄下的__pycache__資料夾內),當第二次使用該模組時會直接載入pyc檔案。所以,將函式、資料等定義在乙個模組中即可完成乙個單例物件。
class singleton(object):def func(self):
print("i'm a singleton!")
s=singleton()
題目:找出陣列中重複的數字
def distinct(l):l_new=
for i in l:
if l.count(i)>1:
return list(set(l_new))
if __name__ == '__main__':
print(distinct([1,2,4,12,2,2,4]))
題目:輸入乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。且二維陣列每行每列都遞增排序。
def double_dimensional_array(array,num):for i in range(len(array)):
for j in range(len(array[0])):
if num==array[i][j]:
return true
return false
if __name__ == '__main__':
da=[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
print(double_dimensional_array(da,7))
print(double_dimensional_array(da,23))
題目:把字串中的空格替換成指定字元
def replace_blank(content,symbol):content_new=''
for i in content:
if i==' ':
content_new+=symbol
else:
content_new+=i
return content_new
if __name__ == '__main__':
print(replace_blank('nice to meet you!','%20'))
劍指Offer Python語言 面試題21
面試題21 調整陣列順序使奇數字於偶數前面 題目 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有奇數字於陣列的前半部分,所有偶數字於陣列的後半部分。最簡單方法是從頭到尾掃瞄陣列,每碰到乙個偶數,拿出這個數字。總時間複雜度是o n 2 另一種方法是維護兩個指標。def exchang...
劍指Offer Python語言 面試題38
面試題38 字串的排列 題目 輸入乙個字串,列印出該字串中字元的所有排列。例如,輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca和cba。coding utf 8 class solution def permutation self,ss write c...
劍指offer(Python)替換空格
這道題要求是 將乙個字串中的空格替換成 20 有多少個空格就替換成多少個 20 例如 hello world 中間有兩個空格,則需要輸出的形式是 hello 20 20world 字串首尾的空格亦算在內。class solution def replacespace self,s return 20...