415. 字符串相加
给定两个字符串形式的非负整数num1
和num2
,计算它们的和并同样以字符串形式返回。
你不能使用任何內建的用于处理大整数的库(比如BigInteger
),也不能直接将输入的字符串转换为整数形式。
示例:
js
输入:num1 = "11", num2 = "123"
输出:"134"
解题思路
- 从个位开始相加
- 记录进位
动画演示
指针1: 2
指针2: 3
进位: 0
[ - , - , 6 , 1 ,( 1 ) ]
[ - , 9 , 5 , 2 ,( 7 ) ]
[ - , - , - , - ,( - ) ]
参考答案
ts
function addStrings(num1: string, num2: string): string {
let i = num1.length - 1;
let j = num2.length - 1;
let carry = 0;
let sum = '';
while (i >= 0 || j >= 0 || carry !== 0) {
const n1 = num1.charAt(i) as any - 0;
const n2 = num2.charAt(j) as any - 0;
const total = n1 + n2 + carry;
carry = total > 9 ? 1 : 0;
sum += total % 10;
i--;
j--;
}
return sum;
}