劍指offer Python 構建乘積陣列

2021-10-01 06:53:35 字數 719 閱讀 4374

給定乙個陣列a[0,1,…,n-1],請構建乙個陣列b[0,1,…,n-1],其中b中的元素b[i]=a[0]a[1]…*a[i-1]a[i+1]…*a[n-1]。不能使用除法。

# b[i]的意義是a陣列不包括i位置的所有乘積,分為i左邊的元素乘積和 i右邊的所有元素乘積。

# 初始化b[0]=1,是因為0左邊沒有元素,所以乘積為1。

class

solution

:def

multiply

(self, a)

:# write code here

ifnot a:

return

num =

len(a)

b =[none

]* num

b[0]

=1for i in

range(1

, num)

: b[i]

= b[i -1]

* a[i -1]

temp =

1# 從後往前遍歷不算最後乙個(num-1)因為第乙個for迴圈中已經計算了

for i in

range

(num -2,

-1,-

1): temp *= a[i +1]

b[i]

*= temp

return b

劍指offer python 66 構建乘積陣列

給定乙個陣列 a 0,1,n 1 請構建乙個陣列 b 0,1,n 1 其中 b 中的元素 b i a 0 a 1 a i 1 a i 1 a n 1 要求不能使用除法。下三角,從1開始乘的 for i in range 1 length b i b i 1 a i 1 l指代length b 1,a...

劍指offer(Python)替換空格

這道題要求是 將乙個字串中的空格替換成 20 有多少個空格就替換成多少個 20 例如 hello world 中間有兩個空格,則需要輸出的形式是 hello 20 20world 字串首尾的空格亦算在內。class solution def replacespace self,s return 20...

劍指offer Python 替換空格

請實現乙個函式,將乙個字串中的每個空格替換成 20 python字串,有replace方法,可以實現替換,第乙個引數是要替換的內容,第二個引數是替換的新內容 能夠快速完成,果然python作為一種高階語言,不太適合做演算法 但是 replace 相當於 insert 在替換 時,會將原字串元素的位置...