Question:
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100".
按位求和
class Solution {
public:
string addBinary(string a, string b) {
string res;
int N1=a.size();
int N2=b.size();
int maxlength=N1>N2?N1:N2;
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
int i=0;
int sum=0;
while(i<maxlength)
{
if(i<N1&&i<N2)
sum+=((a[i]-'0')+(b[i]-'0'));
else if(i<N1&&i>=N2)
sum+=(a[i]-'0');
else
sum+=(b[i]-'0');
res.push_back(sum%2+'0');
sum=sum/2;
i++;
}
if(sum>0)
res.push_back(sum+'0');
reverse(res.begin(),res.end());
return res;
}
};原文:http://blog.csdn.net/u011391629/article/details/52115985