1. 程式人生 > 其它 >力扣 leetcode 989. 陣列形式的整數加法 (python)

力扣 leetcode 989. 陣列形式的整數加法 (python)

技術標籤:pythonleetcode列表字串pythonleetcode演算法

Topic:

對於非負整數 X 而言,X 的陣列形式是每位數字按從左到右的順序形成的陣列。例如,如果 X = 1231,那麼其陣列形式為 [1,2,3,1]。
給定非負整數 X 的陣列形式 A,返回整數 X+K 的陣列形式。

Example_1:

輸入:A = [1,2,0,0], K = 34
輸出:[1,2,3,4]
解釋:1200 + 34 = 1234

Example_2:

輸入:A = [2,7,4], K = 181
輸出:[4,5,5]
解釋:274 + 181 = 455

Example_3:

輸入:A = [2,1,5], K = 806
輸出:[1,0,2,1]
解釋:215 + 806 = 1021

Example_4:

輸入:A = [9,9,9,9,9,9,9,9,9,9], K = 1
輸出:[1,0,0,0,0,0,0,0,0,0,0]
解釋:9999999999 + 1 = 10000000000

Solution_1:

按照不同的位數遍歷列表A並輸出
之後加上K的值並轉換成列表的形式輸出
執行效率低

Code_1:

class Solution:
    def addToArrayForm(self, A: List[int], K: int) -> List[int]:
        ans =
0 n = len(A) for i in range(len(A)): ans += (A[n - i - 1] * 10 ** (i)) ans += K res = list(str(ans)) return res

Solution_2:

將原列表中的值逐位加入到空字串中
並將字串轉換為整數的形式
最後同樣是加上k
轉換為列表後輸出

Code_2:

class Solution:
    def addToArrayForm(self, A: List[int], K:
int) -> List[int]: ans = int(''.join(str(i) for i in A)) ans += K return(list(str(ans)))

Result_2:
在這裡插入圖片描述

Solution_3:

與題解思路相同