Python 3.x 两个数组之和-Python

Python 3.x 两个数组之和-Python,python-3.x,array-sum,Python 3.x,Array Sum,两个随机整数数组/列表分别作为大小为N和M的ARR1和ARR2给出。两个数组/列表都包含从0到9的数字(即每个索引中都有一位整数)。这里的想法是将每个数组/列表表示为数字N和M的整数。 您需要找到两个输入数组/列表的总和,将它们视为两个整数,并将结果放入另一个数组/列表,即输出数组/列表在每个索引处也只包含一位数字。 注意: 尺寸N和M可以不同 输出数组/列表(所有0的)已作为函数参数提供。它的大小总是比较大的数组/列表的大小大一倍。如果没有进位,则在第0个索引处放置0 无需打印输出数组/列表的

两个随机整数数组/列表分别作为大小为N和M的ARR1和ARR2给出。两个数组/列表都包含从0到9的数字(即每个索引中都有一位整数)。这里的想法是将每个数组/列表表示为数字N和M的整数。 您需要找到两个输入数组/列表的总和,将它们视为两个整数,并将结果放入另一个数组/列表,即输出数组/列表在每个索引处也只包含一位数字。

注意: 尺寸N和M可以不同

输出数组/列表(所有0的)已作为函数参数提供。它的大小总是比较大的数组/列表的大小大一倍。如果没有进位,则在第0个索引处放置0

无需打印输出数组/列表的元素

def sumOfTwoArrays(arr1, n, arr2, m, output) :
    #Your code goes here






#Taking Input Using Fast I/O
def takeInput() :
    n = int(stdin.readline().rstrip())
    if n == 0 :
        return list(), 0
    
    arr = list(map(int, stdin.readline().rstrip().split(" ")))
    return arr, n


#to print the array/list
def printList(arr, n) :
    for i in range(n) :
        print(arr[i], end = " ")
    
    print()


#main
t = int(stdin.readline().rstrip())

while t > 0 :
    arr1, n = takeInput()
    arr2, m = takeInput()
    
    outputSize = (1 + max(n, m))
    output = outputSize * [0]
    
    sumOfTwoArrays(arr1, n, arr2, m, output)
    printList(output, outputSize)
    
    t -= 1
样本输入: 一,

三,

6 2 4

三,

7 5 6

样本输出:
1 3 8 0

此问题可通过以下简单函数解决: (注意-如果需要满足“奇怪要求”-“如果没有进位,则将0放在第0个索引处”。这只是一个小练习,您可以对返回结果的最后一行进行调整。)


作为后续,我不认为
n
m
output
需要成为
sumOfTwoArrays
函数的参数。请不要只发布作业/考试问题而不亲自解决。如果答案很好,可以接受,您能表示接受吗?
def sum_two_array(L1, L2):
    carry, total = 0, 0
    m, n = len(L1), len(L2)
    k   = max(m, n)
    
    result = [0] + [0] * k  # add +1 

    for i in range(1, k+1):
        a = L1[m-i] if m - i >= 0 else 0
        b = L2[n-i] if n - i >= 0 else 0
     
        total = a + b + carry
        result[k-i + 1] = total % 10
        carry = total // 10
    
    if carry > 0: result[0] = carry
    
    return result if result[0] != 0 else result[1:]

if __name__ == '__main__':
    L1 = [6, 4, 4]
    L2 = [7, 5, 6]

    print(sum_two_array(L1, L2))  # [1, 4, 0, 0]

    print(sum_two_array([6, 2, 4], [7, 5, 6]))  # [1, 3, 8, 0]

    print(sum_two_array([1, 2, 4], [8, 0]))     # [2, 0, 4]