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.
class Solution {
public String addBinary(String a, String b) {
StringBuffer sb = new StringBuffer();
int i = a.length()-1;
int j = b.length()-1;
int temp = 0;
while(i>=0||j>=0){
int x=0,y=0;
if(i>=0) x=a.charAt(i--)-'0';
if(j>=0) y=b.charAt(j--)-'0';
if(x+y+temp<2){
sb.append(x+y+temp);
temp = 0;
}else{
sb.append(x+y+temp-2);
temp =1;
}
}
if(temp!=0){
sb.append(temp);
}
return sb.reverse().toString();
}
}