[oj] additive number

306. Additive Number

class Solution {
private:
    string stringAddition(string &a, string &b) {
        int l1 = a.size(), l2 = b.size();
        int len = max(l1, l2) + 2;
        char str[len];
        auto i1 = a.crbegin(), i2 = b.crbegin();
        int i = 0, carry = 0;
        bool b1 = (i1 != a.crend()), b2 = (i2 != b.crend());
        while (b1 || b2) {
            int da = 0, db = 0;
            if (b1) da = *(i1++) - '0';
            if (b2) db = *(i2++) - '0';
            int d = da + db + carry;
            carry = d / 10;
            d %= 10;
            str[i++] = '0' + d;
            b1 = (i1 != a.crend()), b2 = (i2 != b.crend());
        }
        if (carry) {
            str[i++] = '0' + carry;
        }
        str[i] = '