[Problem]
[Solution]
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
[Solution]
class Solution {说明:版权所有,转载请注明出处。 Coder007的博客
public:
string addBinary(string a, string b) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
// ignore null strings
int lenA = a.size(), lenB = b.size();
if(lenA == 0 && lenB == 0)return "0";
// add
int i = lenA - 1, j = lenB - 1, carry = 0;
string res = "", zero = "0", one = "1";
while(i >= 0 || j >= 0){
// add
int sum = carry;
if(i >= 0){
sum += a[i] - '0';
}
if(j >= 0){
sum += b[j] - '0';
}
// update carry and sum
carry = sum/2;
sum %= 2;
if(sum == 0)
res = zero + res;
else
res = one + res;
// move forward
i--;
j--;
}
// be careful the last carry
if(carry > 0){
res = one + res;
}
return res;
}
};