猿辅导面试-算法类
一个小时,两道算法题 第一题:列表加和 给定一个int类型的列表(如[1, 9, 8, 8])和一个加和元素(如34),计算列表元素所组成的数字(1988)与加和元素相加后的结果(1988+34=2022,此处仅作为讲解示例,实际操作中不允许这样执行),并以列表的形式输出([2, 0, 2, 2])。 要求: 必须是在列表状态下进行操作,不能将列表中的元素重组为一个整数(如1988)与加和元素进行计算。 示例: [1, 9, 8, 8] + 34 -> [2, 0, 2, 2] [2, 7, 3, 9] + 25798 -> [2, 8, 5, 3, 7] 解题思路: 将加和元素拆分成列表,然后从后往前,按照加法计算公式,与列表中的元素对应相加,若大于等于10则进1,并将大于10的部分存储在结果列表中。 最后,将结果列表逆序输出即可。代码如下 def calc(ans, ads): ads = list(map(int, str(ads))) rst = [] nums_ans = len(ans) nums_ads = len(ads) r = 0 index_ans = nums_ans - 1 index_ads = nums_ads - 1 while index_ads >= 0 and index_ans >= 0: temp = ans[index_ans] +