您的位置:首页 > 编程语言 > Java开发

Add Binary @ LeetCode java

2014-10-28 11:02 381 查看
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();

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Add Binary LeetCo