LeetCode 67 - Add Binary

来源:互联网 发布:手机淘宝 5.9.5旧版本 编辑:程序博客网 时间:2024/06/05 17:51

Add Binary

Given two binary strings, return their sum (also a binary string).

For example,
a = "11"
b = "1"
Return "100".


My Code

class Solution {public:    string addBinary(string a, string b) {        int carry = 0, num;        string c = string(max(a.size(), b.size()), '0');        auto it_a = a.rbegin(), it_b = b.rbegin(), it_c = c.rbegin();        while (it_a != a.rend() && it_b != b.rend())        {            num = carry + *it_a - '0' + *it_b - '0';            if (num >= 2)            {                carry = 1;                num -= 2;            }            else                carry = 0;            *it_c = num + '0';            it_a++;            it_b++;            it_c++;        }        while (it_a != a.rend())        {            num = carry + *it_a - '0';            if (num >= 2)            {                carry = 1;                num -= 2;            }            else                carry = 0;            *it_c = num + '0';            it_a++;            it_c++;        }        while (it_b != b.rend())        {            num = carry + *it_b - '0';            if (num >= 2)            {                carry = 1;                num -= 2;            }            else                carry = 0;            *it_c = num + '0';            it_b++;            it_c++;        }        if (carry)            c = string("1") + c;        return c;    }};
Runtime: 12 ms

0 0
原创粉丝点击