Add Binary

来源:互联网 发布:chakra linux 怎么样 编辑:程序博客网 时间:2024/05/19 23:53

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

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

Subscribe to see which companies asked this question


题目:两个表示二进制字符串相加,返回字符串,用二进制表示和。

思想:字符串相加,高地位不好计算,首先反转字符串,然后各位相加,合理维护进位,最高位判断值,并补充。

class Solution {
public:
    string addBinary(string a, string b) 
    {
        string res;
        const size_t n=a.size()>b.size()?a.size():b.size(); //获取最长的字符串长度
        reverse(a.begin(),a.end());
        reverse(b.begin(),b.end());             //反转便于运算
        int car=0;
        for(size_t i=0;i<n;i++){                //低位处理
            const int ai=i<a.size()?a[i]-'0':0;
            const int bi=i<b.size()?b[i]-'0':0;
            const int val = (ai + bi + car)%2;
            car = (ai + bi +car) / 2;
            res.insert(res.begin(),val+'0');    //每一位都符合逻辑处理
        }
        if(car ==1)//最高位的维护
            res.insert(res.begin(),'1');
        return res;
    }
};

0 0
原创粉丝点击