LeetCode每日一题——二进制求和

题目要求:

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

示例 1:

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

示例 2:

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

代码实现:

void reserve(char* s) {

int len = strlen(s);

for (int i = 0; i < len / 2; i++) {

char t = s[i];

s[i] = s[len - i - 1], s[len - i - 1] = t;

}

}

char* addBinary(char* a, char* b) {

reserve(a);

reserve(b);

int len_a = strlen(a), len_b = strlen(b);

int n = fmax(len_a, len_b), carry = 0, len = 0;

char* ans = (char*)malloc(sizeof(char) * (n + 2));

for (int i = 0; i < n; ++i) {

carry += i < len_a ? (a[i] == '1') : 0;

carry += i < len_b ? (b[i] == '1') : 0;

ans[len++] = carry % 2 + '0';

carry /= 2;

}

if (carry) {

ans[len++] = '1';

}

ans[len] = '\0';

reserve(ans);

return ans;

}

作者:力扣官方题解

来源:力扣(LeetCode)

坚持编程,我一直在路上!

相关推荐
裕工实验室1 分钟前
AMB陶瓷基板设计指南(工程师版)
算法·硬件工程·pcb工艺·材料工程
澈2074 分钟前
深度优先遍历DFS:从入门到精通
算法·深度优先
计算机安禾6 分钟前
【数据结构与算法】第45篇:跳跃表(Skip List)
c语言·数据结构·算法·list·排序算法·图论·visual studio
cmpxr_7 分钟前
【算法】ECC验签名
单片机·算法
MRDONG18 分钟前
深入理解 RAG(Retrieval-Augmented Generation):原理、工程体系与实践指南
人工智能·算法·语言模型·自然语言处理
别或许16 分钟前
线代中为什么左乘一个列满秩矩阵,不改变矩阵的秩?
人工智能·算法·矩阵
wangbing112517 分钟前
适配md5老算法
算法
Dev7z22 分钟前
基于改进YOLO11算法的芯片微缺陷检测系统(UI界面+数据集+分析界面+处置建议+训练代码)
算法·芯片制造·yolo11
papership23 分钟前
【入门级-算法-4、算法策略:差分】
数据结构·算法