public class Solution {
public String addBinary(String a, String b) {
if(a==null&&b==null) return null;
StringBuffer str = new StringBuffer();
int a_len = a.length();
int b_len = b.length();
int ai = a_len - 1, bi = b_len - 1;
int f = 0;
while(ai>=0 && bi>=0){
int aBit = new Integer(a.charAt(ai)-'0');
int bBit = new Integer(b.charAt(bi)-'0');
int tmp = aBit + bBit + f;
str.append(tmp%2);
f = (tmp - tmp%2)/2;
--ai;
--bi;
}
while(ai>=0){
int aBit = new Integer(a.charAt(ai)-'0');
int tmp = aBit + f;
str.append(tmp%2);
f = (tmp - tmp%2)/2;
--ai;
}
while(bi>=0){
int bBit = new Integer(b.charAt(bi)-'0');
int tmp = bBit + f;
str.append(tmp%2);
f = (tmp - tmp%2)/2;
--bi;
}
if(f!=0){
str.append(f);
}
str.reverse();
return str.toString();
}
}
public String addBinary(String a, String b) {
if(a==null&&b==null) return null;
StringBuffer str = new StringBuffer();
int a_len = a.length();
int b_len = b.length();
int ai = a_len - 1, bi = b_len - 1;
int f = 0;
while(ai>=0 && bi>=0){
int aBit = new Integer(a.charAt(ai)-'0');
int bBit = new Integer(b.charAt(bi)-'0');
int tmp = aBit + bBit + f;
str.append(tmp%2);
f = (tmp - tmp%2)/2;
--ai;
--bi;
}
while(ai>=0){
int aBit = new Integer(a.charAt(ai)-'0');
int tmp = aBit + f;
str.append(tmp%2);
f = (tmp - tmp%2)/2;
--ai;
}
while(bi>=0){
int bBit = new Integer(b.charAt(bi)-'0');
int tmp = bBit + f;
str.append(tmp%2);
f = (tmp - tmp%2)/2;
--bi;
}
if(f!=0){
str.append(f);
}
str.reverse();
return str.toString();
}
}