leetcode 67 Add Binary

给定两个字符串,是二进制串,实现加法,返回也是二进制。

string addBinary(string a, string b) {
    int size = a.size()>b.size()?a.size():b.size();
    string ret(size, 0);
    
    bool carry = false;
    int as = a.size();
    int bs = b.size();
    for (int i = 0; i < size; ++i) {
        char ac = as - i - 1 < 0?'0':a[as - i - 1];
        char bc = bs - i - 1 < 0?'0':b[bs - i - 1];
        char ans = ac - '0' + bc - '0' + carry;
        
        if (ans > 1)
            ret[size - i - 1] = ans + '0' - 2;
        else
            ret[size - i - 1] = ans + '0';
        carry = ans > 1;
    }
    if (carry)
        ret.insert(ret.begin(), '1');
    return ret;
}

 

posted on 2018-01-23 01:51  willaty  阅读(118)  评论(0编辑  收藏  举报

导航