【力扣精选算法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电路中,输入阻抗是指输入端对电流信号的响应能…

接入DDoS高防后如何设置源站保护

业务接入DDoS高防后,您应当尽量避免源站IP暴露,以防止攻击者绕过DDoS高防直接攻击源站。如果源站IP有暴露风险,建议您设置源站保护,例如只允许DDoS高防回源IP的入方向流量,提升业务可用性。本文九河云介绍不同网络架构…

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

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

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

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

介绍一下c++中的多态

c中实现多态分为两种方式,分别是静态多态(也叫编译时多态),和动态多态(也叫运行时多态) 静态多态: 是在编译时就确定了函数的类型和会调用哪个函数,这种方式叫做静态连接或者早绑定,静态多态主要实现手段…

springboot/ssm航班进出港管理系统Java航班信息记录管理系统web

springboot/ssm航班进出港管理系统Java航班信息记录管理系统web 基于springboot(可改ssm)vue项目 开发语言:Java 框架:springboot/可改ssm vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库&#xff1…

Math类中的方法总结

Math.min(int a, int b) 或 Math.min(double a, double b):返回两个值中的最小值。 Math.abs(int a) 或 Math.abs(double a):返回值的绝对值。 Math.pow(double a, double b):返回a的b次幂的结果。 Math.sqrt(double a):返回a的平…

veeam备份基础

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

设计模式 — — 代理模式

一、是什么 代理模式(Proxy Pattern)是为一个对象提供一个代用品或占位符,以便控制对它的 生活场景: 租房、买房,比如链家等房屋中介机构,起到的作用就是代理 二、使用 const proxy new Proxy(target, …

基于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 核…

【Python-Pandas】删除带有NaN的行

data.Frame删除带有NaN的行 sample_raw.dropna(axis0, inplaceTrue)axis :为0,表示行。 inplace :为True,表示覆盖原数据。

深入理解快速排序

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

C语言练习题day3

编写一个程序给定两个数字(每个数字均为2位数),根据要求获得新数 并完成打印 新数的千位是第一个数的个位 新数的百位是第一个数的十位 新数的十位是第二个数的十位 新数的个位是第二个数的个位 #include<stdio.h>int main(void…

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

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

C++内存对齐知识点总结

什么是内存对齐 理论上&#xff1a;32位系统&#xff1a;int 4字节&#xff0c;char1字节 现代计算机内存空间都是按照字节划分的。理论上计算机系统对基本类型数据在内存的变量的访问可以从任何地址开始&#xff0c;但是时机的计算机系统对基本类型的数据在内存中存放的位置是…

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

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

OpenCV-图像基础处理

目录 1 彩色&#xff08;RGB&#xff09;图像 2 灰度图像 3 黑白图像 1 彩色&#xff08;RGB&#xff09;图像 使用cv2.imread()函数加载RGB图像&#xff1b;使用cv2.split()函数分割颜色通道&#xff1b;将BGR颜色格式转换成RGB颜色格式&#xff1b;使用matplotlib或cv2.i…

【spring】@Bean注解学习

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

【C#】【SAP2000】读取SAP2000中单元截面信息和几何信息到Grasshopper中

if (build true){// 声明变量int ret;int Numit 0;int[] ObjType new int[0];string[] ObjName new string[0];string sauto "";string propname "";string point1 "";string point2 "";double x1 0;double y1 0;double z1 …

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

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