Leetcode算法——67、二进制数相加(add binary)

Win10 Xbox游戏安装错误终极解决方案 Win10 Xbox游戏安装错误终极解决方案作为Windows 10系统深度用户,相信不少玩家都遇到过Xbox应用安装游戏失败的问题。这类问题轻则影响游戏体验,重则导致系统资源占用异常。本文将结合微软官方技术文档与实际维修案例,系统讲解Xbox游戏安装错误的深层原因与解决方案,帮助读者建立完整的故障处理思维体系。 阅读详情

给定两个二进制字符串,返回他们的和(也是一个二进制字符串)。

输入的字符串都是非空的,并且只包含1或0。

示例:

Example 1:
Input: a = "11", b = "1"
Output: "100"

Example 2:
Input: a = "1010", b = "1011"
Output: "10101"

思路

按照手算加法的步骤,从最低位开始,同位相加,并考虑是否有进位。

与 Leetcode算法——66、加1(plus one) 类似,都是使用了手动加法从低位到高位相加,但是本题是二进制相加,因此需要将满10进1改为满2进1。

python实现

def addBinary(a, b):
    """
    :type a: str
    :type b: str
    :rtype: str
    """
    # 保证a的长度小于等于b的长度
    if len(a) > len(b):
        a,b = b,a 
        
    # 从最低位开始加起
    la, lb = len(a), len(b)
    a = '0' * (lb-la) + a # 两个字符串长度相同,高位补0
    add_one = 0 # 进位
    result = ''
    for i in range(lb-1, -1, -1):
        s = int(a[i]) + int(b[i]) + add_one
        add_one, s = divmod(s, 2)
        result += str(s)
    if add_one == 1: # 最高位补位
        result += '1'
    return result[::-1]

if '__main__' == __name__:
    a = "1010"
    b = "1011"
    print(addBinary(a, b))
配置适合Gurobi的机器硬件环境需要考虑的因素 介绍了在为gurobi选择合适的硬件环境时,需要考虑三个方面的因素; 阅读详情

相关推荐

树莓派4B玩转ROS2 Humble:Ubuntu Desktop一键安装与配置教程

本文详细介绍了在树莓派4B上安装和配置ROS2 Humble的完整教程,包括硬件准备、Ubuntu Desktop系统安装、一键部署ROS2、网络配置优化以及常见问题解决方案。通过简化安装流程和性能调优技巧,帮助开发者快速搭建机器人开发环境,充分发挥树莓派4B在ROS2应用中的潜力。

w8x9y0z1的博客 963

Add Binary 算法详解

算法题目:Given two binary strings, return their sum (also a binary string).For example, a = “11” b = “1” Return “100”大致意思:二进制字符串的加法解题思路:可以用循环与递归来求解循环版本: string addBinary(string a, string b) {

Joy Coder 808

从维纳滤波到Richardson-Lucy:图像去模糊算法的原理与实践

本文深入解析了图像去模糊的核心原理,重点对比了维纳滤波与Richardson-Lucy两种经典去卷积算法。维纳滤波在频域进行快速权衡,适用于高斯噪声场景;而Richardson-Lucy算法基于泊松噪声模型迭代优化,更适用于天文、显微等科学成像。文章通过Python代码实践,详细阐述了PSF(点扩散函数)的关键作用及算法选型指南。

weixin_29285605的博客 385

LeetCode02-二进制加法

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。StringBuilder 相较于 StringBuffer 有速度优势。

Wwrrx的博客 209

VScode中配置 C/C++ 环境,超级详细,问题分析全面,绝对好用

VScode中配置 C/C++ 环境,超级详细,问题分析全面,绝对好用 VScode中配置 C/C++ 环境 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 1. 下载编辑器VScode 1.官网:https://code.visualstudio.com/ 2. 安装VScode(建议附加任务全部勾选; 2. 下载编译器MinGW并解压 官网页面:https://www.mi

m0_46147064的博客 8万+

【QT开发教程】如何在Qt中使用Protobuf进行高效数据序列化

Protocol Buffers(Protobuf)是Google开发的一种语言中立、平台中立、可扩展的序列化机制,常用于数据交换和存储。Qt作为一个跨平台的C++图形用户界面应用框架,可以与Protobuf结合使用,实现高效的数据序列化和反序列化。本文将介绍如何在Qt中集成和使用Protobuf,包括基本概念、安装步骤、使用示例以及实际应用。

科技改变人类,技术成就未来 1439

【leetcode】002二进制加法

二进制加法模拟

weixin_44627672的博客 456

华为OD机试 - 末世分配资源包 - 二分查找 + 贪心(Python/JS/C/C++ 新系统 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。末世时代,政府为各地方配资源,现有资源分配表 nums[n],要求按如下规则分配给 k 个营地:在最优平均分配情况下,得到最大团队所获得的资源数4,3,6,9,7 216最佳划分之一:[4,3,6] -> 13 [9,7] -> 16最大

学Java,找哪吒 223

LeetCode二进制加法

定义carry为每一位运算的结果,要先判断某一位是否存在,不存在就补0,然后carry进行计算,而在进行计算时用到的是数值,要将char类型转换成int,减去‘0’即可。给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。输入为 非空 字符串且只包含数字 1 和 0。

liyatjj的博客 382

QCC304x系列开发教程(实战篇)之5.2 QCC3040之提示音

earbud_init.c中,初始化table中UiPrompts_Init /*! \brief Table of initialisation functions */ static const init_table_entry_t appInitTable[] = { ......... {UiPrompts_Init, 0, NULL}, ......... } ui_prompts.c中是提示音音处理的主要逻辑和配置源文件 函数static void uiPro...

心跳包的博客 2392

ABAP CDS 货币与计量单位换算全攻略:CURRENCY_CONVERSION、UNIT_CONVERSION 与 DECIMAL_SHIFT 的工程化实践

本文介绍了SAP ABAP CDS中三种单位/货币换算函数(UNIT_CONVERSION、CURRENCY_CONVERSION、DECIMAL_SHIFT)的实战应用。重点包括:各函数的职责边界与适用场景,参数配置与精度控制策略,以及基于标准表(T006、TCUR*等)的换算规则来源。文章提供可运行的CDS示例,涵盖单位换算(如MI转KM)、货币汇率转换(含小数位处理)及纯小数位调整等典型场景,并强调生产环境中需注意的精度差异与审计风险控制。适用于企业报表、成本核算等需要统一口径的业务场景。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1554

第九天:《LeetCode一天一例》-----二进制数的加法运算(python实现)

二进制数加法 题目: a = '110110010101010010100010111111001' b = '1010011001011111101110100111' , a和b代表两个二进制数。我们按照二进制数运算法则 将a和b加起来 。。。也就是加起来等于2需要进位。。 分析: 这道题目非常简单,从a和b的末尾一次相加,等于2进位,否则...

shawroad的博客 650

Windows 11 安装 Miniconda + Mamba,配置国内源

本文详细介绍了在 Windows 11 系统下安装 Miniconda 并配置 Mamba 的完整流程,包括选择精简版 Miniconda 的理由、安装过程中的关键选项设置、配置清华大学镜像源以加速包下载,以及在 base 环境中设置 pip 国内源。同时说明了 Mamba 相较 Conda 的性能优势,并指导用户完成 Mamba 安装与 Shell 集成,最终通过命令验证环境管理功能,帮助用户构建高效、轻量的 Python 开发环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 3344

LeetCode67——Add Binary

LeetCode67——Add Binary 二进制相加,与上一题LeetCode66——Plus One类似。 现在假设两个加数分别 是  111 和 11  则 他们的结果是:1010 如果两个加数分别   是 1111  和  1111  则 他们相加的结果是:11110 以此推断,对于 长度为 m 和长度为 n 的两个数来说 他们相加的结果长度为  max(m,n) +

上善若水 539

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

leetcode || 67、Add Binary

problem: Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1" Return "100". Hide Tags  Math String 题意:二进制数相加,二进制数用string表示

hustyangju的足迹 635

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LeetCode-67 Add Binary(二进制数相加)

LeetCode-67 Add Binary(二进制数相加) Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1" Return "100".   public class Solution { public String addBin

你若嘻哈过盛,别人就不再欣赏你的认真 1029

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Leetcode 67 Add Binary

Leetcode 67 Add Binary public class Solution { public String addBinary(String a, String b) { StringBuilder sb = new StringBuilder(); int i = a.length() - 1, j = b.length() -1, carr...

weixin_43876597的博客 100

LeetCode 67 Add Binary

题意: 两个二进制数相加,输出结果 思路: 各种模拟均可,比如先把A和B倒过来,再按位相加,最后把结果再倒回来。 不过为了快,我是这样做的——假设A比B长,那么我对位相加B的长度。这时如果没有进位,那么A长出B的部分就不会变了;如果有进位,那么继续往A的高位加,直到某一次进位为0,那么更高位的A就不变了;如果直到最后还有进位,那就最前面添加一个最高位1。 代码: cla

House 483

LeetCode 67. Add Binary

原题目:https://leetcode-cn.com/problems/add-binary/ 思路: 模拟题,考虑进位(/)和留位(%) 细节:把ab翻转,每次把结果推进ans, 这样如果最后有进位也是在最后面加入。最后把结果ans翻转就得到了结果。 代码: class Solution { public: string addBinary(string a, string b) { string ans; reverse(a.begin..

庾信平生最萧瑟 117

LeetCode力扣 67. 二进制求和 Add Binary 题解代码 JavaScript

问题https://leetcode-cn.com/problems/add-binary/ 练习使用JavaScript解答 /** * @param {string} a * @param {string} b * @return {string} */ var addBinary = function(a, b) { var s = ""; var ai,bi,ci=0,si = 0; var i, j; for(i = a.length-1, j = .

Coding home - 漂流瓶jz 604

leetcode-67-Add Binary

Add Binary Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1" Return "100". 两字符串表示的2进制数。求它们的和。 直接模拟,从最后一位开始每一位都相加,结果保存在栈中。 class Solut

早睡早起好少年 605

leetcode笔记 66. Plus One & 67. Add Binary

leetcode刷题11天 66. Plus One Easy 807 1425 Favorite Share Given a non-empty array of digits representing a non-negative integer, plus one to the integer. The digits are stored such that the most signifi...

qq_29868413的博客 156

LeetCode【#67】Add Binary

题目链接: 点击跳转 题目: Given two binary strings, return their sum (also a binary string). The input strings are bothnon-emptyand contains only characters1or0. Example 1: Input: a = "11", b = "...

Mikchy的博客 203

LeetCode 67. Add Binary【Java】

题目描述 67. 二进制求和 AC代码 第一次用BigInteger做题,相关做法mark下!在leetcode上,记得导入该类。 import java.math.BigInteger; class Solution { public String addBinary(String a, String b) { BigInteger x=new BigInteger(a,2),y=new BigInteger(b,2); BigInteger xor_add,ca

NayelyA的博客 233

Add Binary - LeetCode 67

题目描述:Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1" Return "100". 分析:该题类似于大整数的加法,要求将字符串形式的二进制数相加,返回二进制结果。 需注意:当两个字符串长度不一样时,需将长度较小的那个首部添加0,

bu_min的博客 479

leetcode No67. Add Binary

Question: Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1" Return "100". 按位求和 Algorithm: 从后往前加,有三种情况,具体见程序 Accepted Code: class So

Dufre 1010
上一篇: Leetcode算法——66、加1(plus one)
下一篇: Leetcode算法——68、文本对齐(text justification)
HappyRocking
博客等级 码龄12年 222粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值