LeetcodeApr 21, 2025

Add Strings

Hazrat Ali

Leetcode

Given two non-negative integers, num1 and num2 represented as string, return the sum of num1 and num2 as a string.

You must solve the problem without using any built-in library for handling large integers (such as BigInteger). You must also not convert the inputs to integers directly.

 

Example 1:

Input: num1 = "11", num2 = "123"
Output: "134"

Example 2:

Input: num1 = "456", num2 = "77"
Output: "533"

Example 3:

Input: num1 = "0", num2 = "0"
Output: "0"

 

Constraints:

  • 1 <= num1.length, num2.length <= 104
  • num1 and num2 consist of only digits.
  • num1 and num2 don't have any leading zeros except for the zero itself.

Solution 

/**
 * @param {string} num1
 * @param {string} num2
 * @return {string}
 */
const addStrings = (num1, num2) => {
  const result = [];

  let carry = 0;

  for (let i = num1.length - 1, j = num2.length - 1; i >= 0 || j >= 0 || carry > 0; i--, j--) {
    const x = i >= 0 ? num1[i] - '0' : 0;
    const y = j >= 0 ? num2[j] - '0' : 0;

    result.unshift((x + y + carry) % 10);
    carry = Math.floor((x + y + carry) / 10);
  }

  return result.join('');
};

 

Comments