【second】Add Binary

    string addBinary(string a, string b) {
        // Note: The Solution object is instantiated only once and is reused by each test case.
        int m = a.size();
        int n = b.size();
        
        string res(max(m,n)+1,'0');
        int i = m-1,j=n-1;
        int carry = 0;
        int k = res.size()-1;
        while(i>=0||j>=0||carry>0)
        {
            int num1 = (i<0?0:a[i]-'0');
            int num2 = (j<0?0:b[j]-'0');
            int sum = num1+num2+carry;
            res[k] += sum%2;
            carry = sum>>1;
            --i;
            --j;
            --k;
        }
        if(res[0]!='0')
            return res;
        else
            return string(res.begin()+1,res.end());
        
    }

  

posted @ 2013-10-21 22:23  summer_zhou  阅读(109)  评论(0编辑  收藏  举报