public class Solution {
public String addBinary(String a, String b) {
// Start typing your Java solution below
// DO NOT write main() function
int l1 = a.length();
int l2 = b.length();
int carry = 0;
StringBuilder sb = new StringBuilder();
for(int i = 0; i< Math.max(l1, l2);i++){
int b1 = getBitAt(a, l1-i-1);
int b2 = getBitAt(b, l2-i-1);
int sum = b1 + b2 + carry;
sb.append(sum%2);
carry = sum /2;
}
if (carry == 1) {// no more digit to add up
sb.append(1);
}
return sb.reverse().toString();
}
public int getBitAt(String x, int index)
{
if(index < 0)
return 0;
else if(x.charAt(index) == '0')
return 0;
else
return 1;
}
}