Problem:
Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2.
Note:
- The length of both num1 and num2 is < 5100.
- Both num1 and num2 contains only digits 0-9.
- Both num1 and num2 does not contain any leading zero.
- You must not use any built-in BigInteger library or convert the inputs to integer directly.
思路:
Solution (C++):
string addStrings(string num1, string num2) {
int m = num1.size() - 1, n = num2.size() - 1, carry = 0;
string res = "";
while (m >= 0 || n >= 0 || carry) {
long long sum = 0;
if (m >= 0) { sum += (num1[m--]-'0'); }
if (n >= 0) { sum += (num2[n--]-'0'); }
sum += carry;
carry = sum / 10;
sum %= 10;
res += to_string(sum);
}
reverse(res.begin(), res.end());
return res;
}
性能:
Runtime: 8 ms Memory Usage: 6.9 MB
思路:
Solution (C++):
性能:
Runtime: ms Memory Usage: MB