add-binary 字符串操作,二进制字符串相加

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

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

复制代码
思路很简单,先把短的字符串补齐,然后逐位相加。
string addBinary(string a, string b)
{
    int length = max(a.size(), b.size());
    string res(length + 1, ' ');
    char flag = '0';
    while (length > a.size())
    {
        a = "0" + a;
    }
    while (length > b.size())
    {
        b = "0" + b;
    }
    for (int i = length - 1; i >= 0; --i)
    {
        int ch = a[i] + b[i] + flag - 3 * '0';
        if (ch == 3)
        {
            res[i + 1] = '1'; flag = '1';
        }
        else if (ch == 2)
        {
            res[i + 1] = '0'; flag = '1';
        }
        else
        {
            res[i + 1] = ch + '0';
            flag = '0';
        }    
    }
    if (flag == '1') res[0] = '1';
    else res = res.substr(1);
    return res;
}
复制代码

 

posted @   鸭子船长  阅读(442)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2017-09-11 make_pair
2017-09-11 fwrite和fread函数的用法小结(转)
2017-09-11 函数fseek() 用法(转)
2015-09-11 表示数值的字符串
点击右上角即可分享
微信分享提示