Add Binary

Easy
Watch on YouTube ↗

Solution

class Solution {
    public String addBinary(String a, String b) {
        int m = a.length()-1;
        int n = b.length()-1;
        // O(max(m,n))
        // O(max(m,n))
        StringBuilder sb = new StringBuilder(); 
        int carry = 0;
        // "1000" "1"
        // 1001
        while(m>=0 || n>=0) {
            int sum = carry;
            if(m>=0) {
                sum += (a.charAt(m) - '0');
                m--;
            }
            if(n>=0) {
                sum += (b.charAt(n) - '0');
                n--;
            }
            sb.append(sum%2);
            carry = sum/2;
        }

        if(carry==1)
            sb.append('1');
        
        return sb.reverse().toString();

        
    }
}