今天是Andy學Python的第44 天哦!
大家好,我是Andy。
01.
項目需求
# 合併兩個升序的整數數組A和B,形成一個新的數組,新數組也要有序。
# 如:輸入A = [1],B = [1],輸出[1, 1],返回合併後的數組。
# 輸入A = [1,2,3,4], B = [2,4,5,6],輸出[1, 2, 2, 3, 4, 4, 5, 6],返回合併所有元素後的數組。
02.
任務拆解
2.1 合併兩個列表
2.2 升序排列
2.3 輸出結果
03.
代碼實現
3.1版本1.0
問題:輸入的字符串轉換成列表,是將第一個字符單獨作爲元素轉換成列表,包括標點。
嘗試將數組放在主函數中,不使用input函數。
3.2 版本2.0
代碼附下:
# 合併兩個整數列表並排序
def sort_a_b(a, b):
c = a + b
c.sort()
return(c)
A = [123, 45, 18]
B = [11, 234, 1]
D = [1,2,3,4]
E = [2,4,5,6]
print("輸入:", A, B)
print("輸出:", sort_a_b(A,B))
print("輸入:", D, E)
print("輸出:", sort_a_b(D,E))
04.
書上代碼
代碼附下:
# 書上代碼
class Solution:
# 參數A:有序整數數組A
# 參數B:有序整數數組B
# 返回:一個新的有序整數數組
def mergeSortedArray(self, A, B):
i, j = 0, 0
C = []
while i < len(A) and j < len(B):
if A[i] < B[j]:
C.append(A[i])
i += 1
else:
C.append(B[j])
j += 1
while i < len(A):
C.append(A[i])
i += 1
while j < len(B):
C.append(B[j])
j += 1
return C
# 主函數
if __name__ == '__main__':
A = [1,4]
B = [1,2,3]
D = [1,2,3,4]
E = [2,4,5,6]
solution = Solution()
print("輸入:", A, "", B)
print("輸出:", solution.mergeSortedArray(A,B))
print("輸入:", D, E)
print("輸出:", solution.mergeSortedArray(D,E))
05.
思考
合併兩個列表有兩種方法。
方法一:
a = [1,2,3]
b = [2,3,4,5]
c = a + b
方法二:
a = [1,2,3]
b = [2,3,4,5]
d = a
i = 0
while i in range(len(b)):
d.append(b[i])
i += 1
print(d)
結果如下:
注意:使用d.append()方法,是將括號的參數作爲一個列表元素追加到列表d
51Day Day up!
向上向善,日進一步!
每天學習,努力成長!
定個小目標,開啓成長的旅程,遇見更好的自己。
這是我們和自己的約定,許諾自己不負韶華。
路雖遠,行則將至;事雖難,做則必成。
成長的最好時機,就是當下。