给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
- num1 和num2 的长度都小于 5100.
- num1 和num2 都只包含数字 0-9.
- num1 和num2 都不包含任何前导零。
- 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
class Solution {
public:
string addStrings(string num1, string num2) {
int len1 = num1.size();
int len2 = num2.size();
string str = "";
int i, j;
int z = 0;
for(i = len1 - 1, j = len2 - 1; i >= 0 && j >= 0; i--, j--)
{
int x = num1[i] - '0';
int y = num2[j] - '0';
int temp = (x + y + z) % 10;
z = (x + y + z) / 10;
str = (char)('0' + temp) + str;
}
if(i >= 0)
{
for(; i >= 0; i--)
{
int x = num1[i] - '0';
int temp = (x + z) % 10;
z = (x + z) / 10;
str = (char)('0' + temp) + str;
}
}
else if(j >= 0)
{
for(; j >= 0; j--)
{
int y = num2[j] - '0';
int temp = (y + z) % 10;
z = (y + z) / 10;
str = (char)('0' + temp) + str;
}
}
if(z > 0)
{
str = (char)('0' + z) + str;
}
return str;
}
};