Day044|Python編程300例之合併兩個整數數組並有序輸出

今天是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!

向上向善,日進一步!

每天學習,努力成長!

定個小目標,開啓成長的旅程,遇見更好的自己。

這是我們和自己的約定,許諾自己不負韶華。

路雖遠,行則將至;事雖難,做則必成。

成長的最好時機,就是當下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章