[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;
    }
};
相关推荐
OPEN-F5 小时前
C++11/14新特性精讲:移动语义与智能指针实战
开发语言·c++·算法
闭月之泪舞6 小时前
C++编程学习
c++·学习
lisin-lee-cooper6 小时前
【leetcode658】有序数组找出k个最接近x的数
java·数据结构·算法
sunburn-6 小时前
Java堆(Heap)详解与实战教学
java·开发语言·数据结构·ide·算法
智碳能碳管理平台6 小时前
工业能耗台账标准化:能碳管理系统的数据口径怎么设计
算法·能碳管理系统·智碳能碳管理平台·企业能碳管理系统·碳排放核算软件·绿色工厂申报saas·能碳管理平台
带多刺的玫瑰7 小时前
Leecode#15刷题之三数之和
算法·leetcode·职场和发展
圣保罗的大教堂7 小时前
leetcode 877. 石子游戏 中等
leetcode
哭泣方源炼蛊7 小时前
并查集进阶 P1(带权并查集,并查集分类)
数据结构·c++·算法·二进制·带权并查集
牧羊人.3338 小时前
动手学深度学习 02 | 手写数字识别
图像处理·人工智能·深度学习·算法
武帝为此8 小时前
【InnoDB存储引擎介绍】
数据库·算法