【剑斩OFFER】算法的暴力美学——二进制求和

一、题目描述

二、算法原理

思路:小学生加法运算

把逢十进一,改成逢二进一:

三、代码实现

cpp 复制代码
class Solution {
public:
    string addBinary(string a, string b) {
        int cura = a.size() - 1, curb = b.size() - 1;
        string ret;//最终的结果
        int t = 0;
        while(cura >= 0 || curb >= 0 || t != 0)
        {
            if(cura >= 0) t+= a[cura--] - '0';//转换成数字
            if(curb >= 0) t += b[curb--] - '0';
            ret += ((t % 2) + '0');//入余数,此时字符会慢慢的往后挪动,所以我们在最后的时候逆转字符串
            t /= 2;//保留进位
        }
        reverse(ret.begin(),ret.end());//逆转字符串
        return ret;
    }
};
相关推荐
嘴贱欠吻!3 小时前
Flutter鸿蒙开发指南(七):轮播图搜索框和导航栏
算法·flutter·图搜索算法
张祥6422889044 小时前
误差理论与测量平差基础笔记十
笔记·算法·机器学习
踩坑记录4 小时前
leetcode hot100 2.两数相加 链表 medium
leetcode·链表
qq_192779874 小时前
C++模块化编程指南
开发语言·c++·算法
cici158746 小时前
大规模MIMO系统中Alamouti预编码的QPSK复用性能MATLAB仿真
算法·matlab·预编码算法
历程里程碑6 小时前
滑动窗口---- 无重复字符的最长子串
java·数据结构·c++·python·算法·leetcode·django
2501_940315267 小时前
航电oj:首字母变大写
开发语言·c++·算法
CodeByV7 小时前
【算法题】多源BFS
算法
TracyCoder1237 小时前
LeetCode Hot100(18/100)——160. 相交链表
算法·leetcode
浒畔居7 小时前
泛型编程与STL设计思想
开发语言·c++·算法