""" 逆序相加 给定两个非空数组,表示两个非负的整数。 每个数组每位数字都是按照逆序的方式存储的, 并且每个节点只能存储一位数字。 将两个数相加,并以相同形式返回一个表示和的数组, """ def add(l1, l2): """ 两个列表形式的整数相加。 参数: l1 -- 第一个整数的列表形式 l2 -- 第二个整数的列表形式 返回: 两个整数相加的结果的列表形式 """ # 初始化结果列表和进位变量 result = [] carry = 0 # 确保较短的列表在前,较长的列表在后,以便统一处理 short, long = (l1, l2) if len(l2) > len(l1) else (l2, l1) # 遍历较短列表中的每个元素,进行加法运算 for i in range(len(short)): # 当前位的值等于较短列表的当前位、较长列表的当前位和进位之和 cur = short[i] + long[i] + carry # 计算新的进位 carry = cur // 10 # 将当前位的余数添加到结果列表中 result.append(cur % 10) # 处理完较短列表后,将较长列表剩余的部分追加到结果列表中 start = i + 1 result += long[start:] # 如果还有进位,需要对结果列表的适当位置进行调整 result[start] += carry # 返回结果列表 return result a = [6, 7, 8] b = [2, 3, 4, 5, 6] print(add(a, b))
评论前必须登录!
注册