Leetcode 67 Solution

This article provides solution to leetcode question 67 (add-binary).

https://leetcode.com/problems/add-binary

Solution

class Solution {
public:
    string addBinary(string a, string b) {
        string c;
        
        auto it1 = a.rbegin();
        auto it2 = b.rbegin();
        
        int carry = 0;
        
        while (it1 != a.rend() || it2 != b.rend())
        {
            int val = carry;
            
            if (it1 != a.rend())
            {
                if ((*it1) == '1')
                    val++;
                it1++;
            }

            if (it2 != b.rend())
            {
                if ((*it2) == '1')
                    val++;
                it2++;
            }
                
            if (val >= 2)
            {
                val -= 2;
                carry = 1;
            }
            else
                carry = 0;
            
            c += to_string(val);
        }
        
        if (carry == 1)
            c += "1";
        
        reverse(c.begin(), c.end());
        
        return c;
    }
};