Add Binary

class Solution {
public:
    string addBinary(string a, string b) {
        string res;
        int s1=a.size();
        int s2=b.size();
        if(s1==0) return b;
        if(s2==0) return a;
        int temp=0;
        while(s1>=1&&s2>=1){
            temp+=a[s1-1]-'0'+b[s2-1]-'0';
            if(temp>1){
                res += temp-2+'0';
                temp = 1;
            }
            else{
                 res += temp + '0';
                 temp = 0;
            }
            s1--;
            s2--;
        }
        while(s1>=1){  //if s1 is longer
             temp+=a[s1-1]-'0';
            if(temp>1){
                res += temp-2+'0';
                temp = 1;
            }
            else{
                 res += temp + '0';
                 temp = 0;
            }
            s1--;
        }
        while(s2>=1){  //if s1 is longer
              temp+=b[s2-1]-'0';
               if(temp>1){
                res += temp-2+'0';
                temp = 1;
            }
            else{
                 res += temp + '0';
                 temp = 0;
            }
            s2--;
        }
        if(temp)
        res += temp + '0';
        reverse(res.begin(),res.end());
        return res;
    }
};

 

posted @ 2015-08-02 16:26  *桔子*  阅读(152)  评论(0编辑  收藏  举报