Add Strings
Problem statement
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 <= 104num1andnum2consist of only digits.num1andnum2don't have any leading zeros except for the zero itself.
My solution
/**
* @param {string} num1
* @param {string} num2
* @return {string}
*/
var addStrings = function(num1, num2) {
let result = ""
let carry = 0;
let num1End = num1.length - 1;
let num2End = num2.length - 1;
while (num1End >= 0 || num2End >= 0) {
let sum = carry + (num1[num1End] - "0" || 0) + (num2[num2End] - "0" || 0);
carry = sum > 9 ? 1 : 0;
sum %= 10;
result = `${sum}` + result;
num1End--;
num2End--;
}
if (carry === 1) {
result = "1" + result;
}
return result;
};