cztchoice
1/20/2014 - 1:17 PM

Add Binary http://oj.leetcode.com/problems/add-binary/

class Solution {
public:
    string addBinary(string a, string b) {
        int carry = 0;
        int i = a.size() - 1;
        int j = b.size() - 1;
        string result;
        while(i >= 0 && j >= 0){
            int r = a[i] - '0' + b[j] - '0' + carry;
            carry = r / 2;
            result.insert(result.begin(), r%2 + '0');
            i--;
            j--;
        }
        while(i >= 0){
            int r = a[i] - '0' + carry;
            carry = r / 2;
            result.insert(result.begin(), r%2 + '0');
            i--;
        }
        while(j >= 0){
            int r =  b[j] - '0' + carry;
            carry = r / 2;
            result.insert(result.begin(), r%2 + '0');
            j--;
        }
        while(carry > 0){
            int r = carry;
            carry = r / 2;
            result.insert(result.begin(), r%2 + '0');
        }
        return result;
    }
};