655. Add Strings

Description

以字符串的形式给出两个非负整数 num1 和 num2,返回 num1 和 num2 的和。

num1 和 num2 的长度都小于5100。
num1 和 num2 都只包含数字 0-9。
num1 和 num2 都不包含任何前导零。
您不能使用任何内置的BigInteger库内的方法或直接将输入转换为整数。

Example

给定 num1 = “123”,num2 = “45”
返回 “168”

Solution

相关的题要不就翻转字符串,要不就用栈。JS用数组模拟栈更方便。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* @param num1: a non-negative integers
* @param num2: a non-negative integers
* @return: return sum of num1 and num2
*/
const addStrings = function (num1, num2) {
let s1 = num1.split('');
let s2 = num2.split('');
let r = '',i = 0;
while(s1.length + s2.length !== 0){
let t1 = s1.pop() || 0;
let t2 = s2.pop() || 0;
let sum = parseInt(t1) + parseInt(t2) + i;
i = Math.floor(sum/10);
r = '' + sum%10 + r;
}

return (i?i:"") + r + "";
}