415. 字符串相加

内容

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

注意:

num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。


思路

大数相加,思路见代码


代码

/**
 * @param {string} num1
 * @param {string} num2
 * @return {string}
 */
var addStrings = function (num1, num2) {
    var l;
    var s = num1.length > num2.length ? (l = num1, num2) : (l = num2, num1);

    s = new Array(l.length - s.length).fill('0').join('') + s;

    var needP = false;
    var result = [];
    for (var i = l.length - 1; i >= 0; i--) {
        var sum = Number(l[i]) + Number(s[i]) + (needP ? 1 : 0);
        needP = false;
        if (sum >= 10) {
            needP = true;
            sum -= 10;
        }
        result.unshift(sum.toString());
    }

    if (needP) {
        result.unshift('1');
    }

    return result.join('');
};

回到目录

你可能感兴趣的:(415. 字符串相加)