字符串相加
xiqe opened this issue · comments
Jerry Liang commented
字符串相加
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
- num1 和num2 的长度都小于 5100.
- num1 和num2 都只包含数字 0-9.
- num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
reply
var addStrings = function(num1, num2) {
// 获取两者的最大长度,用于循环次数
let max = Math.max(num1.length,num2.length);
let result = [];
// 设置一个变量用于记录是否进位1
let tmp = 0;
for(let i=0;i<=max;i++){
// 判断是否存在,不存在为0
let x = num1[num1.length-1-i]?num1[num1.length-1-i]:0;
let y = num2[num2.length-1-i]?num2[num2.length-1-i]:0;
// 判断是否是类似4+6,18+82这类情况
if(i!==max || tmp !==0){
result.unshift((parseInt(x)+parseInt(y) + tmp)%10);
}
// 判断位数相加是否大于9,是否需要进1
if(parseInt(x)+parseInt(y)+tmp>9){
tmp = 1;
} else {
tmp = 0;
}
}
return result.join('')
};