LeetCode 067 Add Binary

本文详细介绍了如何使用C++语言编写一个将两个字符串形式的二进制数相加的算法。通过定义一个名为Solution的类,其中包含一个名为addBinary的方法,该方法接收两个字符串参数并返回它们相加后的结果。算法首先反转输入字符串以从最低位开始处理,然后根据二进制加法规则进行运算,同时考虑进位情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两个用字符串存储的二进制数相加。

class Solution {
public:
    string addBinary(string a, string b) {
        string ff;
        int sum=0;
        int nn=0;
        reverse(a.begin(),a.end());
        reverse(b.begin(),b.end());
        int min=a.size()<b.size()?a.size():b.size();
        int go=0;
        int ans;
        for(int ii=0;ii<min;ii++){
            ans=a[ii]-'0'+b[ii]-'0'+go;
            go=ans/2;
            ans%=2;
            ff+=ans+'0';
        }
        int dd=min;
        while(dd<a.size()){
            ans=a[dd]-'0'+go;
            go=ans/2;
            ans%=2;
            ff+=ans+'0';
            dd++;
        }
        dd=min;
        while(dd<b.size()){
            ans=b[dd]-'0'+go;
            go=ans/2;
            ans%=2;
            ff+=ans+'0';
            dd++;
        }
        if(go)ff+=go+'0';
        reverse(ff.begin(),ff.end());
        return ff;
    }
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值