Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2.
- 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.
Have you met this question in a real interview?
Example
Example 1:
Input : num1 = "123", num2 = "45"
Output : 168
class Solution {
public:
string addStrings(string &num1, string &num2) {
int size1 = num1.size();
int size2 = num2.size();
if(size1 == 0){
return num2;
}
if(size2 == 0){
return num1;
}
string res;
int i = size1 - 1;
int j = size2 - 1;
int carr = 0;
while(i >= 0 && j >= 0){
int sum = num1[i] - '0' + num2[j] - '0' + carr;
res = to_string(sum % 10) + res;
carr = sum / 10;
i--;
j--;
}
while(i >= 0){
int sum = num1[i] - '0' + carr;
res = to_string(sum % 10) + res;
carr = sum / 10;
i--;
}
while(j >= 0){
int sum = num2[j] - '0' + carr;
res = to_string(sum % 10) + res;
carr = sum / 10;
j--;
}
if(carr > 0){
res = to_string(carr) + res; //不要忘记这里
}
return res;
}
};
Comments
Post a Comment