[LeetCode] 67. 二进制求和

题目描述:

给你两个二进制字符串 ab ,以二进制字符串的形式返回它们的和。

示例 1:

复制代码
输入:a = "11", b = "1"
输出:"100"

示例 2:

复制代码
输入:a = "1010", b = "1011"
输出:"10101"

提示:

  • 1 <= a.length, b.length <= 104
  • ab 仅由字符 '0''1' 组成
  • 字符串如果不是 "0" ,就不含前导零

题目链接:

. - 力扣(LeetCode)

解题主要思想:

模拟两个二进制数相加的过程即可。

解题代码:

cpp 复制代码
class Solution {
public:
    string addBinary(string a, string b) {
        int cur1 = a.size()-1, cur2 = b.size()-1;
        int t = 0;
        string ret;
        while (cur1 >= 0 || cur2 >= 0 || t) {
            if (cur1 >= 0) t += a[cur1--] - '0';
            if (cur2 >= 0) t += b[cur2--] - '0';
            ret += t % 2 + '0';
            t /= 2;
        }
        reverse(ret.begin(), ret.end());
        return ret;
    }
};
相关推荐
算AI12 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
懒羊羊大王&13 小时前
模版进阶(沉淀中)
c++
owde13 小时前
顺序容器 -list双向链表
数据结构·c++·链表·list
GalaxyPokemon14 小时前
Muduo网络库实现 [九] - EventLoopThread模块
linux·服务器·c++
W_chuanqi14 小时前
安装 Microsoft Visual C++ Build Tools
开发语言·c++·microsoft
hyshhhh14 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
tadus_zeng14 小时前
Windows C++ 排查死锁
c++·windows
EverestVIP14 小时前
VS中动态库(外部库)导出与使用
开发语言·c++·windows
杉之14 小时前
选择排序笔记
java·算法·排序算法
烂蜻蜓15 小时前
C 语言中的递归:概念、应用与实例解析
c语言·数据结构·算法