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) {
        int alen = a.length();
        int blen = b.length();
        //表示进位
        int add=0;
        int i;
        StringBuilder result = new StringBuilder();
        for (i=0;i<alen && i<blen;i++) {
            int aIndex = alen-1-i;
            int bIndex = blen-1-i;
            int sum = add+a.charAt(aIndex)-'0'+b.charAt(bIndex)-'0';
            if (sum > 1) {
                add = sum / 2;
                sum = sum % 2;
            } else {
                //这里进位注意要清零
                add = 0;
            }
            result.append(sum);
        }
        while (i<alen) {
            int sum = add+a.charAt(alen-1-i)-'0';
            if (sum > 1) {
                add = sum / 2;
                sum = sum % 2;
            } else {
                add = 0;
            }
            result.append(sum);
            i++;
        }
        while (i<blen) {
            int sum = add+b.charAt(blen-1-i)-'0';
            if (sum > 1) {
                add = sum / 2;
                sum = sum % 2;
            } else {
                add = 0;
            }
            result.append(sum);
            i++;
        }
        if (add!=0) {
            result.append(add);
        }
        return result.reverse().toString();
    }
}

 

posted @ 2014-01-06 11:39  23lalala  阅读(87)  评论(0编辑  收藏  举报