67. Add Binary - cocoder39/coco39_LC GitHub Wiki

67. Add Binary

string addBinary(string a, string b) {
        int sza = a.size(), szb = b.size();
        string res;
        int va = 0, vb = 0, carry = 0;
        int i = sza - 1, j = szb - 1;
        while (i >= 0 || j >= 0 || carry > 0) {
            int va = i >= 0 ? a[i--] - '0' : 0;
            int vb = j >= 0 ? b[j--] - '0' : 0;
            
            int sum = va + vb + carry;
            res.push_back(sum % 2 + '0');
            carry = sum / 2;
         }
        reverse(res.begin(), res.end());
        return res;
    }