Given two binary strings a and b, return their sum as a binary string.
1 <= a.length, b.length <= 104 a and b consist only of '0' or '1' characters. Each string does not contain leading zeros except for the zero itself.
class Solution {
public String addBinary(String a, String b) {
StringBuilder sumAsBinary = new StringBuilder();
int i = a.length()-1;
int j = b.length()-1;
int carry = 0;
while(i >= 0 || j >= 0) {
int sum = 0;
if(i >= 0 && a.charAt(i) == '1') sum++;
if(j >= 0 && b.charAt(j) == '1') sum++;
sum += carry;
if(sum>=2) carry = 1;
else carry = 0;
sumAsBinary.insert(0, (char) ((sum%2) + '0'));
i--;
j--;
}
if(carry == 1) sumAsBinary.insert(0, '1');
return sumAsBinary.toString();
}
}