Add Binary @ LeetCode java

来源:互联网 发布:云计算视频教程百度云 编辑:程序博客网 时间:2024/05/16 12:06

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();
        }
    }
}
0 0