Add Binary

题目

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

For example,
a = "11"
b = "1"
Return "100".

答案

public String addBinary(String a, String b) {
        StringBuilder sb = new StringBuilder();
        int a_len = a.length(), b_len = b.length();

        int i = a_len - 1, j = b_len - 1;
        char ca, cb, carry = '0';
        while (i >= 0 || j >= 0) {
            ca = (i >= 0) ? a.charAt(i) : '0';
            cb = (j >= 0) ? b.charAt(j) : '0';
            if (ca == '0' && cb == '0') {
                sb.insert(0, carry);
                carry = '0';
            } else if ((ca == '0' && cb == '1') || (ca == '1' && cb == '0')) {
                sb.insert(0, (carry == '0') ? '1' : '0');
                carry = (carry == '1') ? '1' : '0';
            } else if (ca == '1' && cb == '1') {
                sb.insert(0, (carry == '0') ? '0' : '1');
                carry = '1';
            }
            i--;
            j--;
        }
        if(carry == '1') sb.insert(0, '1');
        return sb.toString();
    }

你可能感兴趣的:(Add Binary)