一、题目描述:
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 提示:
- num1 和num2 的长度都小于 5100
- num1 和num2 都只包含数字 0-9
- num1 和num2 都不包含任何前导零
- 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式 LeetCode
二、思路分析:
- 把两个字符串分别转成数组然后反转。
- 挨个计算每个元素的和。注意不要数组越界了。
- 然后把个位的数字加到str上面,把十位的数字存起来下次循环使用。
- 最后判断存起来的十位数字是否为1,如果为1就添加到str的最前面,否则直接返回即可。
三、AC 代码:
/**
* @param {string} num1
* @param {string} num2
* @return {string}
*/
var addStrings = function(num1, num2) {
num1 = num1.split('').reverse();
num2 = num2.split('').reverse();
let str = '';
let ten = 0;
for(let i = 0; i < num1.length || i < num2.length; i++) {
let sum = 0;
if(i >= num1.length) {
sum = +num2[i] + ten;
} else if (i >= num2.length) {
sum = +num1[i] + ten;
} else {
sum = +num1[i] + +num2[i] + ten;
}
ten = Math.floor(sum / 10);
str = sum % 10 + str;
}
return ten ? ten + str : str;
};
四、总结:
代码简单通俗易懂,打工人加油
本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情