美文网首页
67.Add Binary

67.Add Binary

作者: 花落花开花满天 | 来源:发表于2018-11-03 19:09 被阅读0次

两个二进制数相加

代码:

class Solution {

public:

  vector<int> string2num(string s)

{

    vector<int>num;

    for(int i=0;i<s.length();i++)

    {

        if(s[i]=='0')

            num.push_back(0);

        else if(s[i]=='1')

            num.push_back(1);

    }

    return num;

}

string num2string(vector<int> &num)

{

    string str;

    for(vector<int>::iterator it=num.begin();it!=num.end();it++)

    {

        str+=to_string(*it);

    }

    return str;

}

string addBinary(string a, string b) {

    vector<int>anum,bnum,tempa,tempb;

    tempa=string2num(a);

    tempb=string2num(b);

    if(tempa.size()>=tempb.size())

    {

        anum=tempa;

        bnum=tempb;

    }

    else

    {

        anum=tempb;

        bnum=tempa;

    }

    int i=anum.size()-1,j=bnum.size()-1;

    int add=0,temp;

        while(i>=0)

        {

            temp=0;

            if(j>=0)

            {

                if(bnum[j]==1)

                    temp+=1;

                j--;

            }

            if(add==1)

                temp+=1;

          if(temp>0)

            {

                temp+=anum[i];

                anum[i]=temp%2;

                add=temp/2;

            }

            i--;

        }

        if(add==1)

            anum.insert(anum.begin(), 1);

    return num2string(anum);

}

};

相关文章

网友评论

      本文标题:67.Add Binary

      本文链接:https://www.haomeiwen.com/subject/mkflxqtx.html