Skip to content

415. 字符串相加

给定两个字符串形式的非负整数num1num2,计算它们的和并同样以字符串形式返回。

你不能使用任何內建的用于处理大整数的库(比如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;
}