Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100".
class Solution {
public:
std::string addBinary(std::string a, std::string b) {
int la = a.size();
int lb = b.size();
int len = std::min(la,lb);
std::reverse(a.begin(),a.end());
std::reverse(b.begin(),b.end());
std::string c;
int s = 0;
for (int i = 0; i < len; i++)
{
s += a[i] - '0' + b[i] - '0';
c.insert(c.begin(),s % 2 + '0');
s /= 2;
}
if(la < lb)
{
for (int i = la; i < lb; i++)
{
s += b[i] - '0';
c.insert(c.begin(),s % 2 + '0');
s /= 2;
}
}
else
{
for (int i = lb; i < la; i++)
{
s += a[i] - '0';
c.insert(c.begin(),s % 2 + '0');
s /= 2;
}
}
if(s > 0)
{
c.insert(c.begin(),s + '0');
}
#if 0
for (int i = 0; i < c.size(); i++)
{
std::cout << c[i];
}
std::cout << std::endl;
#endif // 1
return c;
}
};
精彩文章
发表评论