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
|
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 + ""; }
|