0067 Add Binary

0067 Add Binary

Given two binary strings a and b, return their sum as a binary string.

Examples:

Input: a = "11", b = "1" Output: "100"

Input: a = "1010", b = "1011" Output: "10101"

Constraints:

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.

Java Solution

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();
    }
}

Last updated