题目描述
对于非负整数X,X的数组形式是从左到右顺序的数字数组。例如,如果X = 1231,则数组形式为[1,2,3,1]。
给定非负整数X的数组形式A,返回整数X + K的数组形式。
Example 1:
Input: A = [1,2,0,0], K = 34 Output: [1,2,3,4] Explanation: 1200 + 34 = 1234
思路
将整数数组A拼接为整数字符串,转为整数类型后与K相加,然后再将和转化为整数数组。
代码实现
class Solution: def addToArrayForm(self, A: 'List[int]', K: 'int') -> 'List[int]':
拓展思路
上面的方法借鉴了python的便捷性,下面的思路是常规思路,也是我们小学数学的加法运算过程:
例如,要添加123和912,我们添加3 + 2,然后是2 + 1,然后是1 + 9。每当我们的加法结果超过10时,我们将1带入下一列。结果是1035。
class Solution(object): def addToArrayForm(self, A, K): A[-1] += K for i in xrange(len(A) - 1, -1, -1): carry, A[i] = divmod(A[i], 10) if i: A[i-1] += carry if carry: A = map(int, str(carry)) + A return A