leetcode每日一题—989.数组形式的整数加法

题目:
对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。
给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。
leetcode每日一题—989.数组形式的整数加法_第1张图片
leetcode每日一题—989.数组形式的整数加法_第2张图片

leetcode每日一题—989.数组形式的整数加法_第3张图片

解答:

class Solution:
    def addToArrayForm(self, A: List[int], K: int) -> List[int]:
        i=0
        #若K的数位长度小于len(A),则K先变为0。
        #   若此时A中不存在10,则运算结束;否则运算继续
        while K or (10 in A):
            #因为A中会有数据插入,所以长度是处于变化中的
            n=len(A)
            #若A未运算到最高位 or A有进位 
            if i<n:
                cur=K%10
                tmp=A[n-1-i]+cur
                A[n-1-i]=tmp%10
                if i!=n-1:
                    A[n-2-i]+=tmp//10
                else:
                    if tmp>9:
                        A.insert(0,1)  
            #若A无进位
            else:
                A.insert(0,K%10)
            i+=1
            K//=10
        return A

你可能感兴趣的:(leetcode)