Add Binary
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
public class Solution {
public String addBinary(String a, String b) {String temp=new String();
if(a==null){return b;}
else if(b==null){return a;}else{
if(a.length()<b.length()){
temp=a;
a=b;
b=temp;
}
StringBuilder zheng=new StringBuilder();
char yu='0';
int minus=a.length()-b.length();
for(int i=b.length()-1;i>=0;i--){
if(yu==a.charAt(i+minus)&&yu==b.charAt(i)&&yu=='0'){
zheng.append("0");
yu='0';
}else if(yu==a.charAt(i+minus)&&yu==b.charAt(i)&&yu=='1'){
zheng.append("1");
yu='1';
}else if((yu=='1'&&a.charAt(i+minus)==b.charAt(i)&&a.charAt(i+minus)=='0')||
(a.charAt(i+minus)=='1'&&yu==b.charAt(i)&&yu=='0')||
(b.charAt(i)=='1'&&a.charAt(i+minus)==yu&&yu=='0')){
zheng.append("1");
yu='0';
}else{
zheng.append("0");
yu='1';
}
}
for(int i=a.length()-b.length()-1;i>=0;i--){
if(yu=='0'){
zheng.append(a.charAt(i));
yu='0';
}else{
if(a.charAt(i)=='0'){
zheng.append("1");
yu='0';
}else{
zheng.append("0");
yu='1';
}
}
}
if(yu=='1'){
zheng.append("1");
}
return zheng.reverse().toString();
}
}
}