问答

当前位置

Facebook 面试题 | 字符串相加

  • Ta: 张助教

题目描述

给定的两个字符串长度小于5000,只包含数字0-9,同时不包含任何的前导0,不允许使用任何的大整数计算库。

样例输入

num1 = “5”, num2= “613”, 返回“618”

算法分析

本题是简单的字符串处理+模拟问题。

由于加法的过程是从个位开始向最高位逐位相加,

而数字的个位在字符串的最大位置处(len - 1),数字的最高位在字符串的0位置处,

所以应该按照两个字符串的最大位置对齐,

假设两个字符串的长度分别为len1和len2,

那么我们应该从len1-1和len2-1开始逆序逐位相加,

每一位的加法应该考虑三个方面:

两个字符串在该位的数值以及上一位的进位。

需要注意的是两个字符串长度很可能并不相等,因此我们在处理完能够对齐的部分之后还需要考虑较长的字符串剩下的部分。

另外还有一个细节需要注意,最后一次加法运算很可能也存在进位1,这时需要单独把进位1添加到最后的结果中。

参考代码

更多优质LC答案查询网址

面试官角度分析

本题思想比较简单,是字符串模拟加法问题,如果面试者顺利给出正确的解法能够达到hire的程度。

0 个回复

我来回答

您没有权限

为提高问答质量,问答版块发言权限只向九章学员开放

登录 注册

© Jiu Zhang 2013-. All rights reserved. 京ICP备16004690号-1