LeetCode:67.二进制求和

67. 二进制求和 - 力扣(LeetCode)

又是一道求和题,% / 在求和的用途了解了些,

目录

题目:

思路分析: 

博主代码:

官方代码: 

每日表情包:


题目:

思路分析: 

求和,就对齐单个字符式的求和以及转换成整型求和,当然转换成整型有溢出的烦恼。

遍历即可,不过得注意自己malloc的字符串要记得加上一个字符串的结束标志'\0'

既然是遍历就是时O(n)又因为是自己malloc返回,所以空O(n),

博主代码:

char AddCheck01(char ch1, char ch2, char flag)
{if (((ch1 + ch2 + flag) - 3 * '0') >= 2) return '1';else return '0';
}
char* addBinary(char* a, char* b) {//要想相加,对齐末位很有必要,所以先求长度//官解的reserve是变相的对齐相加int sizeA = strlen(a);int sizeB = strlen(b);char flag = '0';int size = (sizeA > sizeB ? sizeA : sizeB);char* Return = (char*)malloc(sizeof(char) * (size + 1));Return[size] = '\0';//很容易忘记的字符串要带的结束标志for (int i = 1; i <= size; ++i) {char Acur = (sizeA - i) >= 0 ? a[sizeA - i] : '0';char Bcur = (sizeB - i) >= 0 ? b[sizeB - i] : '0';Return[size - i] = Acur ^ Bcur ^ flag;flag = AddCheck01(Acur, Bcur, flag);//%,/,的相加看起来要好多了(之前的十进制链表的题用过)}if (flag == '1') {//可能的进一位情况char* tmp = (char*)malloc(sizeof(char) * (size + 2));memmove((tmp + 1), Return, sizeof(char) * (size + 1));tmp[0] = '1';free(Return);Return = tmp;}return Return;
}

官方代码: 

不喜欢这种malloc方式,在不进一位的情况下,相当于多开辟了空间,

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;
}作者:力扣官方题解
链接:https://leetcode.cn/problems/add-binary/solutions/299667/er-jin-zhi-qiu-he-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

每日表情包:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/467252.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【电路笔记】-串联电感

串联电感 文章目录 串联电感1、概述2、电感串联示例13、互耦串联电感器4、电感串联示例25、电感串联示例36、总结当电感器以菊花链方式连接在一起并共享公共电流时,它们可以串联连接在一起。 1、概述 这些电感器的互连产生了更复杂的网络,其总电感是各个电感器的组合。 然而…

【Go】一、Go语言基本语法与常用方法容器

GO基础 Go语言是由Google于2006年开源的静态语言 1972&#xff1a;&#xff08;C语言&#xff09; — 1983&#xff08;C&#xff09;—1991&#xff08;python&#xff09;—1995&#xff08;java、PHP、js&#xff09;—2005&#xff08;amd双核技术 web端新技术飞速发展&…

软件23-上午题-树与二叉树2

一、平衡二叉树 平衡二叉树&#xff1a;是一棵空树或它的左右两个子树的高度差的绝对值不超过 1&#xff0c; 并且左右两个子树都是一棵平衡二叉树。 注意&#xff1a; 完全二叉树 平衡二叉树&#xff01;&#xff01;&#xff01; 二、二叉排序树&#xff08;二叉查找树、二…

算法-----高精度算法1(高精度加法,高精度减法)(详解)

什么是高精度算法&#xff1f; 高精度的意思就是他得名字----高的精度&#xff0c;简单说就是位数很大&#xff0c;而高精度算法就是将这些高精度数&#xff08;位数很大在几百几千几万位的数叫高精度数&#xff09;通过计算机的型式模拟出来结果。 为什么要用高精度算法&…

坚持刷题|环形链表

文章目录 题目考察点代码实现扩展问题 Hello&#xff0c;大家好&#xff0c;我是阿月。坚持刷题&#xff0c;老年痴呆追不上我&#xff0c;刷了一段时间二叉树啦&#xff0c;今天换链表刷&#xff1a;环形链表 题目 141. 环形链表 考察点 主要考察了链表的基本操作和快慢指…

PySQLRecon:一款功能强大的MSSQL安全测试工具

关于PySQLRecon PySQLRecon是一款功能强大的MSSQL安全测试工具&#xff0c;该工具基于SQLRecon实现其功能&#xff0c;可以帮助广大红队研究人员针对MSSQL执行攻击性安全测试。 环境配置 由于该工具基于Python 3开发&#xff0c;因此我们首先需要在本地设备上安装并配置好Pyt…

【51单片机】矩阵键盘(江科大)

6.1矩阵键盘 矩阵键盘&#xff1a; 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式 采用逐行或逐列的“扫描”,就可以读出任何位置按键的状态 1.数码管扫描(输出扫描) 原理:显示第1位→显示第2位→显示第3位→ …… ,然后快速循环这个过程,最终实现所…

软件架构与系统架构:区别与联系的分析

软件架构与系统架构&#xff1a;区别与联系的分析 在信息技术领域&#xff0c;软件架构和系统架构这两个术语经常被提及。尽管它们在某些方面有重叠&#xff0c;但它们确实代表了不同的概念和聚焦点。理解这两种架构之间的区别和联系对于任何从事技术开发和设计的专业人士都是至…

【复现】Supabase后端服务 SQL注入漏洞_48

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 Supabase是什么 Supabase将自己定位为Firebase的开源替代品&#xff0c;提供了一套工具来帮助开发者构建web或移动应用程序。 Sup…

高效的工作学习方法

1.康奈尔笔记法 在这里插入图片描述 2. 5W2H法 3. 鱼骨图分析法 4.麦肯锡7步分析法 5.使用TODOLIST 6.使用计划模板&#xff08;年月周&#xff09; 7. 高效的学习方法 成年人的学习特点&#xff1a; 快速了解一个领域方法 沉浸式学习方法&#xff1a; 沉浸学习的判据&am…

TapableHookPlugins

以极客时间《玩转Webpack》课程学习为主的记录笔记。 源码解读 webpack的命令跟踪&#xff0c;从node_modules/webpack/bin/ 可以看到命令内容&#xff0c;webpack会查看是否下载安装了webpack-cli / webpack-command。使用webpack-cli 解析命令行信息、安装使用到的依赖&…

浅谈jmeter性能测试步骤入门

一、Jmeter简介 1 概述 jmeter是一个软件&#xff0c;使负载测试或业绩为导向的业务&#xff08;功能&#xff09;测试不同的协议或技术。 它是 Apache 软件基金会的Stefano Mazzocchi JMeter 最初开发的。 它主要对 Apache JServ&#xff08;现在称为如 Apache Tomca…