@@ -0,0 +1,1282 @@
+public class Solution %7B%0A    public String addBinary(String a, String b) %7B%0A        // adjust to addBinary(String long, String short)%0A        if(a.length() %3E= b.length())%0A            return addString(a, b);%0A        else%0A            return addString(b, a);%0A    %7D%0A    %0A    // add binary string from last bit to first bit of string b%0A    String addString(String a, String b)%7B%0A        String res = a;%0A        for(int i = 0; i %3C b.length(); i ++)%7B%0A            res = addBit(res.substring(0, res.length()-i), b.charAt(b.length()-1-i)) + res.substring(res.length() - i, res.length());%0A        %7D%0A        return res;        %0A    %7D%0A    %0A    // add bit to binary string a%0A    String addBit(String a, char b)%7B%0A        if(b == '0')%0A            return a;%0A        else%0A            return addOne(a);%0A    %7D%0A    %0A    // add one to binary string a%0A    String addOne(String a)%7B%0A        String res = %22%22;%0A        int i;%0A        // check for last %220%22 bit in string a%0A        for(i = a.length()-1; i %3E=0; i--)%7B%0A            if(a.charAt(i) == '0')%0A                break;%0A        %7D%0A        if(i %3C= 0)%7B%0A            res += %221%22;%0A        %7Delse%7B%0A            res = a.substring(0,i) + %221%22;%0A        %7D  %0A        while(i + 1 %3C a.length())%7B%0A            res += %220%22;%0A            i++;    %0A        %7D%0A        return res;%0A    %7D%0A%7D

Add Binary