Given two binary strings, return their sum (also a binary string).
For example,
a =
b =
Return
a =
"11"b =
"1"Return
"100".string addBinary(string a, string b) {
if(a.size() <= 0)
return b;
if(b.size() <= 0)
return a;
string result = "";
int i = a.size() - 1;
int j = b.size() - 1;
int carry = 0;
int sum = 0;
while(i >=0 && j >= 0)
{
sum = a[i] - '0' + b[j] - '0'+ carry;
carry = sum / 2;
sum = sum % 2;
char t = sum + '0';
result = t+ result ;
i--;
j--;
}
while(i >=0)
{
sum = a[i] - '0' + carry;
carry = sum / 2;
sum = sum % 2;
char t = sum + '0';
result = t + result ;
i--;
}
while(j >= 0)
{
sum = b[j] - '0'+ carry;
carry = sum / 2;
sum = sum % 2;
char t = sum + '0';
result = t + result ;
j--;
}
if(carry)
{
char t = carry + '0';
result = t + result ;
}
return result;
}
No comments:
Post a Comment