Leetcode Add Binary

OpenSoucre發表於2014-06-25

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 carry = 0, alen = a.length(),blen = b.length();
        string res="";
        if(alen > blen) {b=string(alen-blen,'0')+b;blen = alen;}
        if(alen < blen) {a=string(blen-alen,'0')+a;alen = blen;}
        for(int i = alen-1; i>=0 ; -- i){
            int num =(a[i]-'0')+(b[i]-'0')+carry;
            carry = 0;
            if(num >= 2) {num-=2;carry=1;}
            res+='0'+num;
        }
        if(carry) res+='1';
        reverse(res.begin(),res.end());
        return res;
    }
};

 

相關文章