415. Add Strings
Given two non-negative integers num1
and num2
represented as string, return the sum of num1
and num2
.
Note:
The length of both
num1
andnum2
is < 5100.Both
num1
andnum2
contains only digits0-9
.Both
num1
andnum2
does not contain any leading zero.You must not use any built-in BigInteger library or convert the inputs to integer directly.
string addStrings(string num1, string num2) { // time: O(max(m, n)); space: O(max(m, n))
string res;
int m = num1.length(), n = num2.length();
int i = m - 1, j = n - 1, carry = 0;
while (i >= 0 || j >= 0 || carry) {
int n1 = i >= 0 ? num1[i--] - '0' : 0;
int n2 = j >= 0 ? num2[j--] - '0' : 0;
int sum = n1 + n2 + carry;
res += (char)(sum % 10 + '0');
carry = sum / 10;
}
reverse(res.begin(), res.end());
return res;
}
Last updated
Was this helpful?