劍指offer python 面試題2 5

2022-08-22 09:30:17 字數 1372 閱讀 9996

使用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...