Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
Subscribe to see which companies asked this question
public class Solution {
public String addBinary(String a, String b) {
if(b.length()>a.length()){
String t = a;
a=b;
b=t;
}
char [] a1 = a.toCharArray();
char [] b1 = b.toCharArray();
String ret ="";
int al=a1.length-1;
int bl=b1.length-1;
int overflow=0;
while(bl>=0){
if(a1[al]-'0'+b1[bl]-'0'+overflow==3){
overflow=1;
ret='1'+ret;
bl--;al--;continue;
}
if(a1[al]-'0'+b1[bl]-'0'+overflow==2){
overflow=1;
ret='0'+ret;
bl--;al--;continue;
}
if(a1[al]-'0'+b1[bl]-'0'+overflow==1){
overflow=0;
ret='1'+ret;
bl--;al--;continue;
}
if(a1[al]-'0'+b1[bl]-'0'+overflow==0){
overflow=0;
ret='0'+ret;
bl--;al--;continue;
}
}
while(al>=0){
if(a1[al]-'0'+overflow==2){
overflow=1;
ret='0'+ret;
al--;continue;
}
if(a1[al]-'0'+overflow==1){
overflow=0;
ret='1'+ret;
al--;continue;
}
if(a1[al]-'0'+overflow==0){
overflow=0;
ret='0'+ret;
al--;continue;
}
}
if(overflow==1)ret='1'+ret;
return ret;
}
}