67. Add Binary

来源:互联网 发布:qq会员免费开通软件 编辑:程序博客网 时间:2024/06/07 03:47

Given two binary strings, return their sum (also a binary string).

For example,
a = "11"
b = "1"

Return "100".

问题:二进制字符串相加

思想:从末尾开始相加,注意使用StringBuffer而不要用String占用常量池空间

  if(b==null) return a;        if(a==null) return b;        int carry=0;        int curVal=0;        int i=a.length()-1;        int j=b.length()-1;        StringBuffer sb=new StringBuffer();        String output;                while(i>=0||j>=0){        int aVal=i>=0?(a.charAt(i)-'0'):0;        int bVal=j>=0?(b.charAt(j)-'0'):0;        curVal=(aVal+bVal+carry)%2;        sb.insert(0, curVal);        carry=(aVal+bVal+carry)/2;        i--;j--;        }        if(carry==1){        sb.insert(0, 1);        }        return sb.toString();


0 0