【力扣精选算法100道】——二进制求和

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

目录

🎈了解题意

🎈算法分析

🚩cur1>=0

🚩cur2>=0

🚩t

🎈实现代码



🎈了解题意

遵循二进制加法法则,如果俩者相加等于2那么就“逢2进1”。如果俩者相加不等于2,那么就还是相加的结果(无非是0+0=0或者0+1=1),如果最高位相加等于2,也依旧逢2进1。


🎈算法分析

  • 1.我们首先再字符串a和字符串b中分别定义一个指标从最后一位开始,然后往前相加。
  • 2.定义t代表相加的结果。因为字符串a和b每个下标对应的元素是char型,我们要相加是int类型,需要将字符转int类型,相加字符串a中的字符更新t,相加字符串b中的字符更新t。
  • 3.如果t>=2的话,那么我们需要将其取模,然后当时的类型是char类型,我们需要char转换成int类型,然后ret就更新了。

字符转数字  char c      int ret=c-'0'

数字转字符  int   c       char ret=c+'0'

那么我们有没有想过循环的结束条件是什么?我们要分三种情况来推断出来。

🚩cur1>=0


🚩cur2>=0


🚩t


🎈实现代码


class Solution {
public:string addBinary(string a, string b) {string ret;int cur1=a.size()-1,cur2=b.size()-1,t=0;while(cur1>=0 || cur2>=0 || t)//因为最后t=1 的时候,虽然cur1和cur2到负数了,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;}
};

我走的每一步都要心知肚明。

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

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

相关文章

跨阻放大器(TIA)的输入输出阻抗的定义、分析和影响因素

跨阻放大器(TIA)的输入输出阻抗的定义、分析和影响因素 跨阻放大器(Transimpedance Amplifier,简称TIA)是一种常用于将电流信号转换为电压信号的放大器。在TIA电路中,输入阻抗是指输入端对电流信号的响应能…

48. 【Linux教程】yum 软件包管理

本小节介绍如何在 Linux 系统中使用 yum 命令软件管理。 1.yum 简介 yum 是 Red Hat 软件包管理器,它能够查询有关可用软件包的信息,从存储库获取软件包,安装和卸载软件包,以及将整个系统更新到最新的可用版本。yum 在更新&#…

酷开会员 | 和好朋友一起玩酷开系统体感游戏

春天已经到来,闲暇时间做些什么好呢?那就玩会游戏吧!打开酷开系统,在体感游戏中,寻找一款自己喜欢的运动,和家人一起运动起来吧! 酷开系统是一款非常贴心、全面的智能电视操作系统。它拥有丰富…

veeam备份基础

veeam的安装 将文件动态连接文件复制到veeam的安装目录中,替换掉新的文件 重新启动服务 为veeam添加证书 为veeam添加存储 其他 第一次完整备份时间会比较久 备份预览,transferred和processing date的区别 transferred后面数据为压缩比

基于SAMD21G17D的触摸滑条USB HID设备实现及控制PC音量的功能开发(USB HID+MPLAB)

https://www.bilibili.com/video/BV1dr421H7yPTOC 👉 【2024年寒假练】基于SAMD21G17D的触摸滑条USB HID控制PC音量快捷键的功能开发 👉 Github: EmbeddedCamerata/SAMD21_touchbar_usb_hid 项目介绍 本项目基于 Microchip 的 SAMD21 Curiosity Nano 核…

深入理解快速排序

一、快速排序 快速排序是冒泡排序的一种改进算法,相比于冒泡排序效率更优。 算法过程分析: 通过采用分治策略,围绕一个 x 将原始数组划分为两个子数组,使得前一个子数组的元素≤ x ≤ 后一个子数组元素,对两个子数组进…

WebGIS开发0基础必看教程:鹰眼的实现思路

1.背景 鹰眼功能是WebGIS中的一种常见功能,利用一些开源的框架实现起来非常方便。当然,按照博主从底层谈WebGIS这套系列的风格,在这里还是跟大家一起探讨探讨不借助第三方框架开发鹰眼的简单实现思路。 2.鹰眼功能分析 3.实现思路设计 3.1…

C语言 - 堆栈二叉树的基础及应用

1.历史 堆栈是为了减少程序内存占用的问题而发明的 机器上电后,所有的变量都需要copy到内存中运行,但是机器的内存大小一直都是比较有限的,所以堆栈和局部变量两个概念被提出来 2.栈 每次手动创建、删除变量非常麻烦,于是…

【spring】@Bean注解学习

Bean介绍 Bean用于指示一个方法应该产生一个Bean对象,并将其交给Spring容器管理。 当使用Bean注解的方法被Spring容器调用时,它只会执行一次,随后该方法返回的Bean对象会被添加到Spring的IOC(Inversion of Control,控…

静电ESD整改:原因、影响与解决方案详解?|深圳比创达电子

静电(ESD)是在日常生活和工作中常见的现象,但它可能对电子设备和器件造成严重的损坏。本文将介绍静电ESD的定义、原因、影响以及解决方案,帮助大家更好地了解ESD问题,并采取相应的整改措施。 一、静电ESD的定义 静电…

L2-4 寻宝图(Python3)

给定一幅地图,其中有水域,有陆地。被水域完全环绕的陆地是岛屿。有些岛屿上埋藏有宝藏,这些有宝藏的点也被标记出来了。本题就请你统计一下,给定的地图上一共有多少岛屿,其中有多少是有宝藏的岛屿。 输入格式&#xf…

Python Excel 文本编辑库之xlsxwriter使用详解

概要 在现代数据处理和报表生成中,Excel 文件是一个非常常见的格式。Python XlsxWriter 库是一个强大的工具,可以帮助开发者轻松创建和编辑 Excel 文件,并且具有高度的灵活性和可定制性。本文将全面介绍 XlsxWriter 库的原理、功能、用法,并通过丰富的示例代码来展示其强大…

什么是工业数采网关?如何远程数采?

随着工业自动化的不断发展,数据采集与远程控制成为了生产过程中不可或缺的一环。而工业数采网关,作为连接工业设备与上位管理系统之间的桥梁,扮演着越来越重要的角色。HiWoo Box 作为一款优秀的工业数采网关产品,为 PLC、传感器、…

蓝牙系列十五:协议栈GAP层分析

Generic Access Profile(通用访问规范) 它在用来控制设备连接和广播,用于提供蓝牙设备的通用访问功能,包括设备发现、连接、鉴权、服务发现等等。 GATT是建立连接后通信规范, 而蓝牙是通过GAP建立通信的。 GAP 使你的…

边缘智能融合区块链:研究现状、应用及挑战

源自:信息与控制 作者:任晓旭 仇超 邓辉 戴子明 刘泽军 王晓飞 “人工智能技术与咨询” 发布 摘 要 边缘智能集网络、计算、存储和智能于一体,将智能推向网络边缘,为互联时代的低延迟关键计算开辟了道路。为进一步满足…

算法学习系列(四十):贡献法

目录 引言概念一、孤独的照片二、牛的基因学三、字串分值 引言 关于这个贡献法考的不是很多,主要题型是出现在需要枚举每一个组合这类题,出现的次数较多。没有固定的模板,就是一种思想,跟贪心一样,每个题都是不一样的…

Thymeleaf 基本使用

01、Thymeleaf 官网地址:Thymeleafhttps://www.thymeleaf.org/ 简介 Thymeleaf是一种服务器端Java模板引擎,用于将数据渲染为HTML、XML、JavaScript等格式,并在Web浏览器中呈现给用户。 具体来说,Thymeleaf充当着视图层的角色&…

C语言 ——注释

1.1 单行注释 - 语法:// 待注释的内容 - 位置:可放在代码后,称之为行尾注释; 也可放代码上一行,称作行上注释。 c // 这是单行注释文字 1.2 多行注释 - 语法:/* 待注释的内容 */ - 注意:多⾏…

考研C语言复习进阶(1)

目录 1. 数据类型介绍 1.1 类型的基本归类: 2. 整形在内存中的存储 2.1 原码、反码、补码 2.2 大小端介绍 3. 浮点型在内存中的存储 ​编辑 1. 数据类型介绍 前面我们已经学习了基本的内置类型: char //字符数据类型 short //短整型 int /…

前端之用HTML弄一个古诗词

将进酒 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>将进酒</title><h1><big>将进酒</big> 君不见黄河之水天上来</h1><table><tr><td ><img…