【剑斩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;
    }
};
相关推荐
Dlrb12115 小时前
C语言-指针三
c语言·算法·指针·const·命令行参数
Tisfy5 小时前
LeetCode 2540.最小公共值:双指针(O(m+n))
算法·leetcode·题解·双指针
IronMurphy5 小时前
【算法四十七】152. 乘积最大子数组
算法
淘矿人7 小时前
Claude辅助DevOps实践
java·大数据·运维·人工智能·算法·bug·devops
Cosolar7 小时前
万字详解:RAG 向量索引算法与向量数据库架构及实战
数据库·人工智能·算法·数据库架构·milvus
落羽的落羽8 小时前
【算法札记】练习 | Week4
linux·服务器·数据结构·c++·人工智能·算法·动态规划
萑澈9 小时前
算法竞赛入门:C++ STL核心用法与时空复杂度速查手册
数据结构·c++·算法·stl
Godspeed Zhao9 小时前
从零开始学AI16——SVM
算法·机器学习·支持向量机
江屿风10 小时前
C++OJ题经验总结(竞赛)1
开发语言·c++·笔记·算法