 In this post, you will know how to solve the Add Binary Leetcode Solution problem of Leetcode. This Leetcode problem is done in many programming languages like C++, Java, and Python.

One more thing to add, don’t directly look for the solutions, first try to solve the problems of Leetcode by yourself. If you find any difficulty after trying several times, then you can look for solutions.

## Problem

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

Example 1:

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

Example 2:

```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.

### Add Binary Leetcode Solutions in Python

```class Solution:
def addBinary(self, a: str, b: str) -> str:
s = []
carry = 0
i = len(a) - 1
j = len(b) - 1
while i >= 0 or j >= 0 or carry:
if i >= 0:
carry += int(a[i])
i -= 1
if j >= 0:
carry += int(b[j])
j -= 1
s.append(str(carry % 2))
carry //= 2
return ''.join(reversed(s))
```

### Add Binary Leetcode Solutions in CPP

```class Solution {
public:
string addBinary(string a, string b) {
string ans;
int carry = 0;
int i = a.length() - 1;
int j = b.length() - 1;
while (i >= 0 || j >= 0 || carry) {
if (i >= 0)
carry += a[i--] - '0';
if (j >= 0)
carry += b[j--] - '0';
ans += carry % 2 + '0';
carry /= 2;
}
reverse(begin(ans), end(ans));
return ans;
}
};
```

### Add Binary Leetcode Solutions in Java

```class Solution {
public String addBinary(String a, String b) {
StringBuilder sb = new StringBuilder();
int carry = 0;
int i = a.length() - 1;
int j = b.length() - 1;
while (i >= 0 || j >= 0 || carry == 1) {
if (i >= 0)
carry += a.charAt(i--) - '0';
if (j >= 0)
carry += b.charAt(j--) - '0';
sb.append(carry % 2);
carry /= 2;
}
return sb.reverse().toString();
}
}
```

Note: This problem Add Binary is generated by Leetcode but the solution is provided by  BrokenProgrammers. This tutorial is only for Educational and Learning purposes.