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.
思路:和二进制加法几乎一样。
AC代码:
class Solution {
public:
string addStrings(string a, string b)
{
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
int f = 0;
if(a.length()>b.length()) swap(a,b);
string res(b);
for(int i=0;i<a.length();i++)
{
res[i] += ((a[i]-'0') + f);
if(res[i]>'9')
{
res[i] -= 10;
f = 1;
}
else f = 0;
}
for(int i=a.length();i<b.length();i++)
{
res[i] += f;
if(res[i]>'9')
{
res[i] -= 10;
f = 1;
}
else f = 0;
}
if(f==1)
res+="1";
reverse(res.begin(), res.end());
return res;
}
};