Add Binary

系统 1577 0

题目:

 

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

For example,
a = "11"
b = "1"
Return "100" .

分析:可以根据二进制的加法原理解决此问题,要注意string与int之间的转换。

代码如下:

        string addBinary(string a, string b) {
        int n1=a.length();
        if(n1==0)return b;
        int n2=b.length();
        if(n2==0)return a;
        string result;
        int t=0;
        if(n1<n2)
        {
            string tmp(a);
            a=b;
            b=tmp;
            int temp=n1;
            n1=n2;
            n2=temp;
        }
        for(int i=n2-1;i>=0;i--)
        {
            
            string tmp;
            tmp='0'+(int(a[n1-1]-'0')+int(b[i]-'0')+t)%2; //此句中 int(a[n1-1]-'0') 是string转int

                                                                                        //int + '0' 是int 转化为string
            result=tmp+result;
            t=(int(a[n1-1]-'0')+int(b[i]-'0')+t)/2;
            n1--;
        }
        for(int i=n1-1;i>=0;i--)
        {
            string tmp;
            tmp='0'+(int(a[i]-'0')+t)%2;
            result=tmp+result;
            t=(int(a[i]-'0')+t)/2;
        }
        if(t==1)
        {
            string tmp;
            tmp='0'+1;
            result=tmp+result;
            return result;
        }
        return result;
    }

 

Add Binary


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论