Add Binary —LeetCode

来源:互联网 发布:plc编程及应用 第4版 编辑:程序博客网 时间:2024/05/16 07:52

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

For example,
a = "11"
b = "1"

Return "100".

1、

string addBinary(string a, string b) {        if(a.size()==0) return b;        if(b.size()==0) return a;                int carry=0;                if(b.size()>a.size()) swap(a,b);                int indexA=a.size()-1;        int indexB=b.size()-1;                for(;indexA>=0;indexA--)        {            if(indexB>=0)            {                if(a.at(indexA)+b.at(indexB)+carry-2*'0'==0) ;                else                {                    if(a.at(indexA)+b.at(indexB)+carry-2*'0'==1)                    {                        a.at(indexA)='1';                        carry=0;                    }                    else                    {                           if(a.at(indexA)+b.at(indexB)+carry-2*'0'==2)                            a.at(indexA)='0';                        else                             a.at(indexA)='1';                        carry=1;                    }                }                indexB--;            }            else            {                if(a.at(indexA)+carry-'0'==0);                else                {                    if(a.at(indexA)+carry-'0'==1)                    {                        a.at(indexA)='1';                        carry=0;                    }                    else                    {                        a.at(indexA)='0';                        carry=1;                    }                }            }        }          if(carry==1) a.insert(a.begin(),'1');        return a;    }

2、

string addBinary(string a, string b) {        int carry=0;        int indexA=a.size()-1;        int indexB=b.size()-1;        string result="";                while(indexA>=0||indexB>=0||carry>0)       {           carry+=(indexA>=0?a.at(indexA--)-'0':0)+(indexB>=0?b.at(indexB--)-'0':0);           result.insert(result.begin(),carry%2?'1':'0');           carry=carry/2;       }                               return result;    }



0 0
原创粉丝点击