LeetCode 「简单」415.字符串相加
题目描述
给定两个字符串形式的非负整数 num1 和 num2 ,计算它们的和并同样以字符串形式返回。
你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。
示例
输入:num1 = "11", num2 = "123"
输出:"134"
输入:num1 = "456", num2 = "77"
输出:"533"
输入:num1 = "0", num2 = "0"
输出:"0"
解答
Code
/**
* @param {string} num1
* @param {string} num2
* @return {string}
*/
var addStrings = function(num1, num2) {
let sum = '';
let carry = 0;
let offset = Math.max(num1.length, num2.length);
for (let i = 0; i < offset; ++i) {
const n1 = (num1[num1.length - i - 1] || 0) * 1;
const n2 = (num2[num2.length - i - 1] || 0) * 1;
sum = (n1 + n2 + carry) % 10 + sum;
carry = Math.floor((n1 + n2 + carry) / 10);
}
return carry === 1 ? '1' + sum : sum;
}
