Add Binary
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
class Solution { public: string addBinary(string a, string b) { int la = a.size(), lb = b.size(); int len = max(la, lb) + 2; char* res = new char[len]; memset(res, 0, len); int left = 0, cur; int ia = la - 1, ib = lb - 1, ic = len - 2; while (ia >= 0 && ib >= 0) { cur = a[ia--] + b[ib--] - 2 * '0' + left; if (cur > 1) { res[ic--] = '0' + cur % 2; left = 1; } else { res[ic--] = '0' + cur; left = 0; } } while (ia >= 0) { cur = a[ia--] - '0' + left; if (cur > 1) { res[ic--] = '0' + cur % 2; left = 1; } else { res[ic--] = '0' + cur; left = 0; } } while (ib >= 0) { cur = b[ib--] + left - '0'; if (cur > 1) { res[ic--] = '0' + cur % 2; left = 1; } else { res[ic--] = '0' + cur; left = 0; } } if (left > 0) res[ic--] = '1'; return string(res+ic+1); } };