LeetCode989——陣列形式的整數加法

weixin_43839163發表於2020-10-13

題目描述
對於非負整數 X 而言,X 的陣列形式是每位數字按從左到右的順序形成的陣列。例如,如果 X = 1231,那麼其陣列形式為 [1,2,3,1]。

給定非負整數 X 的陣列形式 A,返回整數 X+K 的陣列形式。

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

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

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

示例 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

提示:
1 <= A.length <= 10000
0 <= A[i] <= 9
0 <= K <= 10000
如果 A.length > 1,那麼 A[0] != 0

解題思路
該題的解題思路主要是通過按位獲取陣列中的值獲得一個整型數num,再加上數字K,即可得到待輸出的整型數,通過整除取餘法,一次獲取每一位數字,重新新增到新的列表lst中,這裡如果不設定倒序儲存,則會出現結果為倒敘列表的情況,可以通過設定空列表,通過逆位賦值重新排序(即首尾互換),最後輸出排序好的列表即可

程式碼

class Solution:
    def addToArrayForm(self, A: List[int], K: int) -> List[int]:
        num=0
        lst=list([])
        n=len(A)
        for i in range(n):
            num=num*10+A[i]
        num=num+K
        while num:
            lst.append(num%10)
            num=num//10
        n=len(lst)
        ls=list(range(n))
        for i in range(n):
            ls[i]=lst[n-1-i]
        return ls

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/add-to-array-form-of-integer
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

相關文章