专栏 | 九章算法
网址 | www.jiuzhang.com
题目描述
给定两个字符串,代表两个数字,num1, num2.计算他们的和。返回类型也是一个字符串。
给定的两个字符串长度小于5000,只包含数字0-9,同时不包含任何的前导0,不允许使用任何的大整数计算库。
样例输入
num1 = “5”, num2= “613”, 返回“618”
算法分析
本题是简单的字符串处理+模拟问题。
由于加法的过程是从个位开始向最高位逐位相加,
而数字的个位在字符串的最大位置处(len - 1),数字的最高位在字符串的0位置处,
所以应该按照两个字符串的最大位置对齐,
假设两个字符串的长度分别为len1和len2,
那么我们应该从len1-1和len2-1开始逆序逐位相加,
每一位的加法应该考虑三个方面:
两个字符串在该位的数值以及上一位的进位。
需要注意的是两个字符串长度很可能并不相等,因此我们在处理完能够对齐的部分之后还需要考虑较长的字符串剩下的部分。
另外还有一个细节需要注意,最后一次加法运算很可能也存在进位1,这时需要单独把进位1添加到最后的结果中。
参考代码
更多优质LC答案查询网址:www.jiuzhang.com/solutions/
面试官角度分析
本题思想比较简单,是字符串模拟加法问题,如果面试者顺利给出正确的解法能够达到hire的程度。
推荐阅读:
- 《北美IT企业fulltime薪资大曝光》
- 《IT 简历模板大放送 | 《如何写好技术简历》讲座精华总结》
- 《offer收割机的求职秘诀 | <如何成为offer达人>讲座精华总结》
- 《Google offer 如何谈判?听听 Google recruiter 怎么说!》
- 《面试遇到做过的题怎么办?》
- 《冷冻期大揭秘 | Google、FB、Amazon、Linkedin冷冻期》
- 《面试前如何了解一家IT企业?试试官方技术博客!》
- 《北美IT企业intern薪资大曝光》
- 《16个behavior question 的面试官解析及tips》
- 《Google晋升机制 | 大公司如何升级打怪, 获得晋升?》
欢迎关注我的微信公众号:九章算法(ninechapter)。
精英程序员交流社区,定期发布面试题、面试技巧、求职信息等
