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;

}

};

精彩文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。