Leetcode 67.二进制求和

【简单】力扣算法题解析LeetCode67:二进制求和 题目要求将两个二进制字符串相加,返回二进制形式的和。解题思路是从字符串末尾逐位相加,处理进位,最终反转结果。Java实现使用StringBuilder高效拼接字符,通过位运算优化计算。代码示例输入"11"和"1"返回"100",时间复杂度O(max(m,n)),空间复杂度O(n)。 阅读详情

Leetcode 67.二进制求和

  1. 二进制求和

给你两个二进制字符串,返回它们的和(用二进制表示)。

输入为 非空 字符串且只包含数字 1 和 0。

示例 1:

输入: a = “11”, b = “1”
输出: “100”

示例 2:

输入: a = “1010”, b = “1011”
输出: “10101”

class Solution {
    public String addBinary(String a, String b) {
        String longNum = "";//记录较长的字符串
        String shortNum = "";//记录较短的字符串
        if(a.length() == b.length()){
            longNum = a;
            shortNum = b;
        }else{
            longNum = a.length() > b.length() ? a : b;
            shortNum = a.length() < b.length() ? a : b;
        }
        String s = "";
        boolean f = false;//判断是否进位
        for(int k = longNum.length() - 1,x = shortNum.length() - 1;k >= 0;k--,x--){
            int sum = 0;
            //当指针在较短的字符串范围内时
            if(x >= 0){
                int ai = longNum.charAt(k) - '0';
                int bi = shortNum.charAt(x) - '0';
                if(x == shortNum.length() - 1||!f){
                    sum = ai + bi;
                }else if(f){
                    sum = ai + bi + 1;
                    f = false;
                }
                if(sum >= 2){
                    s = (sum % 2) + s ;
                    f = true;
                }else{
                    s = sum + s ;
                }
            }
            //当指针离开短字符串的范围时
            if(x < 0&&k >= 0){
                if(f){
                    sum = (longNum.charAt(k) -'0') + 1;
                    if(sum >= 2){
                        s = (sum % 2) + s;
                    }else{
                        s = sum + s;
                        f = false;
                    }
                }else{
                    sum = (longNum.charAt(k) -'0');
                    s = sum + s;
                }
            }
        }
        if(f){
            return '1' + s;
        }else
            return s;
    }
}

执行结果:
通过
显示详情
执行用时:12 ms, 在所有 Java 提交中击败了5.70% 的用户
内存消耗:39 MB, 在所有 Java 提交中击败了11.39% 的用户

解放双手,摆脱自建库的繁琐,立创EDA元件库转cadence原理图封装库实战技巧 阅读详情

相关推荐

交流电路计算方法:复阻抗和相量法

一,复阻抗 电容电路,电压与电流的大小比值是XC=1/WC,相位上电流比电压超前90度 这样描述很麻烦,在复平面里,相位超前90度,可以用什么数学表示呢? 也就是说,一个相量,乘以j之后,大小没变化,相位变得超前90度了 同样的,大小不变,相位落后90度应该除以j 原来我们说电容电路,给个电压,算电流又要算XC,又要另外说相位超前90度,现在可以简单点 在这个计算式里,1/wc还是原来的容抗大...

theory and practice的博客 3万+

LeetCode 67二进制求和【简单】

LeetCode 67二进制求和【简单】解题思路 几点细节注意 1 不要化成十进制求和再返回二进制,因为二进制String位数有可能非常多,没法进行计算,因此一位一位进行运算才行 2 String是无法用索引得到里面的字符的,要用charAt(index)方法 3 想要得到字符转int,用 (int)字符 - '0’即可, int可以不写, 字符遇到运算符自动变成int 思路 二进制运算,需要考虑...

ligen1112的博客 262

伺服驱动器启用后对传感器线信号干扰的解决方案

在一些Arduino项目中,研究者发现,当伺服电机启动时,传感器信号会出现显著噪声。例如,在一个假肢项目中,研究者使用光电隔离器成功隔离了伺服驱动器对EMG传感器的干扰。然而,当启用伺服驱动器时,传感器线信号常常受到干扰,导致系统性能下降。传感器线信号是传感器输出的电信号,用于测量物理量,如温度、光线或位置。例如,在一些案例中,伺服驱动器的开关操作可能导致传感器信号出现尖峰或波动,特别是在模拟传感器上更为明显。描述: 使用光电隔离或其他隔离技术,分离伺服驱动器和传感器的电气路径,防止直接干扰。

有用好玩有趣的“电”知识 1466

LeetCode 67.二进制求和

给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例 1: 输入: a = "11", b = "1" 输出: "100" 示例 2: 输入: a = "1010", b = "1011" 输出: "10101" 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-bi...

rosinante 204

实战指南 | 利用TSMaster的C小程序实时监控DBC报文发送周期

本文提供了一份利用TSMaster的C小程序实时监控DBC报文发送周期的实战指南。通过创建用户变量、编写C小程序核心逻辑并关联图形模块,工程师可以直观地可视化关键报文(如ID 0x64)的发送间隔,从而快速发现周期异常,提升汽车电子开发和测试中总线问题定位的效率与实时性。

weixin_29178069的博客 418

泰山派RK3576开发板部署Qwen3-VL-4B多模态模型实战指南:从模型转换到板端推理全流程

本文提供了在泰山派RK3576开发板上部署阿里Qwen3-VL-4B多模态模型的完整实战指南。详细介绍了从环境准备、模型转换(包括视觉模型转换为.rknn格式和语言模型转换为.rkllm格式)、交叉编译到板端推理的全流程,重点讲解了如何利用RK3576的NPU进行硬件加速,实现高效的边缘AI应用。

weixin_30356433的博客 259

leetcode 67.二进制求和

leetcode 67.二进制求和 题目描述 给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。 示例 1: 输入: a = "11", b = "1" 输出: "100" 示例 2: 输入: a = "1010", b = "1011" 输出: "10101" 解题思路 两个字符串同时从后向前遍历,对于位相加,再加上进位符三者进行运算,需要注...

EngineerHe的博客 1088

分子动力学模拟学习1-采用AmberTools21的MCPB.py构建金属蛋白的top文件

分子动力学模拟学习1-采用AmberTools21的MCPB.py构建金属蛋白的top文件

weixin_45011386的博客 3826

leetcode python 67. 二进制求和

https://leetcode-cn.com/problems/add-binary/description/ python下的进制转换 我是按照读字符串的方式先转为10进制,再用bin(x),转回二进制。做完,看了下最快的原来python能直接转。 这是我自己的 class Solution(object): def addBinary(self, a, b): ...

u012860582的博客 1330

使用CloudCompare和CANUPO进行点云分类的编程指南

在本文中,我们将介绍如何使用CloudCompare和CANUPO库进行点云分类的编程。CloudCompare是一款功能强大的开源点云处理软件,而CANUPO是一个用于点云分类和分割的C++库。这只是一个简单的点云分类示例,CANUPO库还提供了其他更高级的功能和算法,以满足各种点云分类需求。该函数接受点云数据、地面点掩码和非地面点掩码作为输入,并将分类结果存储在这两个掩码向量中。完成安装后,我们可以开始编写点云分类的代码。最后,我们遍历点云数据,并根据地面点和非地面点的掩码将结果打印出来。

ByteWhisper的博客 1059

论文阅读: SIGIR 2025 ID-Free Not Risk-Free: LLM-Powered Agents Unveil Risks in ID-Free Recommender Syste

咱们平时用的推荐系统(比如购物APP推商品、视频APP推剧),大多是“有ID”的——每个用户、每个商品都有个专属ID,系统靠这些ID记录你的浏览、购买历史,再给你推喜欢的东西。但这种方式有个大问题:新用户、新商品刚上线时没有ID历史数据,系统没法精准推荐,这就是“冷启动”难题。后来人们搞出了“无ID推荐系统”:不用ID了,改成直接分析商品的文字信息(比如商品标题、描述),靠大语言模型(LLM,类似ChatGPT的技术)把文字转成“语义代码”,再通过这些“代码”判断你可能喜欢什么。

CSPhD-winston的博客 977

Leetcode67. 二进制求和

Leetcode67. 二进制求和 题目: 给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例 1: 输入: a = “11”, b = “1” 输出: “100” 题解: 整体思路是将两个字符串较短的用 0补齐,使得两个字符串长度一致,然后从末尾进行遍历计算,得到最终结果。 本题解中大致思路与上述一致,但由于字符串操作原因,不确定最后的结果是否...

会流泪de鱼的博客 321

同步调相机启动与并网控制技术方案

同步调相机起动与并网控制技术方案采用背靠背变流器系统,通过静止变频器(SFC)策略实现无原动机驱动的同步电机从静止到同步转速的平稳起动。方案详细阐述了硬件自检、模块初始化、转子位置检测等关键环节,重点解决启动转矩为零、冲击电流大等挑战。系统基于STM32或C2000系列控制器,包含网侧/机侧变流器、检测保护单元及通信接口,通过励磁脉冲和电压响应分析实现高精度转子初始定位,为后续并网提供必要条件。代码级实现涵盖了ADC自检、数字IO验证及通信端口测试等核心功能。

huanghm88的专栏 307

力扣简单题系列:二进制求和(LeetCode 67)

这道题通过模拟二进制加法的过程,帮助我们理解如何处理字符串表示的二进制数以及进位问题。对于初学者来说,掌握字符串遍历和进位处理是解决类似问题的关键。

weixin_53910667的博客 726

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【力扣LeetCode】 67二进制求和

本文针对力扣第67题「二进制求和」,提出了一种基于​​高精度计算​​的清晰解法。该方法先将两个输入字符串​​逆序存储​​并​​统一长度​​至最高位,随后模拟竖式加法按位运算并处理二进制进位。最终,将结果数组逆序输出并转换为字符串。本文提供了详细的C++实现代码,重点讲解了​​逆序处理以对齐低位​​和​​进位控制​​等关键技巧,为处理二进制字符串加法提供了可靠方案

仟墨(郑龙浩)的博客 266

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【LeetCode力扣题库】67. 二进制求和(简单)

原题目链接:67. 二进制求和 题目描述: 给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字1和0。 示例1: 输入: a = "11", b = "1" 输出: "100" 示例2: 输入: a = "1010", b = "1011" 输出: "10101" 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-binary 著作权归领扣网络所有。商业转载请联系官方授权,非商业...

一个平平无奇的攻城狮 2372

LeetCode67-二进制求和

LeetCode67-二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例 1: 输入: a = "11", b = "1" 输出: "100" 示例 2: 输入: a = "1010", b = "1011" 输出: "10101" 一、思路 这里只需要考虑溢出的情况就行了 处理溢出的方法: 设置一个新的数组用于存放相加的结果,低...

lyd1995的博客 275

LeetCode 67二进制求和

LeetCode 67二进制求和Easy 题目简述:给两个二进制字符串,返回它们的二进制和。输入为 非空 字符串且只包含数字 1 和 0。 输入:a = “11”, b = “1” 输出:“100” 输入:a = “1010”, b = “1011” 输出:“10101” 思路:与十进制加法相同,两数相加,模拟竖式加法过程 从低位到高位(字符串从后往前)逐位相加,如果和大于2,则保留个位数字,同时向前进位1 要保证两个数的位数相同,若位数不同,短数最高位用0补足 如果最高位有进位,则

XBlog 245

力扣[LeetCode].67. 二进制求和

给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。 示例 1: 输入: a = "11", b = "1" 输出: "100" 示例 2: 输入: a = "1010", b = "1011" 输出: "10101" 提示: 每个字符串仅由字符 '0' 或 '1' 组成。 1 <= a.length, b.length <= 10^4 字符串如果不是 "0" ,就都不含前导零。 //二进制求和,满二进一 //首先让两个字

C/C++/Linux/MySQL 544

力扣(LeetCode) 67: 二进制求和 - 解法思路

给定两个二进制字符串a和b,返回它们的和作为二进制字符串。关键是从右到左处理数字,添加对应数字并传播进位。进位可以是 0 或 1,我们继续处理直到两个字符串都处理完毕且没有剩余进位。解法 1 手动实现,逻辑清晰;解法 2 利用 Python 优化的内置函数,性能最佳。两种解法都实现了 O(max(m, n)) 的时间复杂度和空间复杂度。

Yao H. Wang's Blog 459

力扣67. 二进制求和(逐位运算、位运算)

力扣67. 二进制求和 https://leetcode-cn.com/problems/add-binary/ 给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字1和0。 示例1: 输入: a = "11", b = "1" 输出: "100" 示例2: 输入: a = "1010", b = "1011" 输出: "10101" 提示...

小麦China的博客 834

Leetcode 67 二进制求和 C语言

Leetcode 67 二进制求和 C语言 给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。 示例 1: 输入: a = “11”, b = “1” 输出: “100” 示例 2: 输入: a = “1010”, b = “1011” 输出: “10101” 提示: 每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。 1 <= a.length, b.length <= 10^4 字符串如果不是 “0” ,就都不含前导零。 思路:从后往前加,判断那

Android驱动开发 542

Python描述 LeetCode 67. 二进制求和

Python描述 LeetCode 67. 二进制求和   大家好,我叫亓官劼(qí guān jié ),在GitHub & 优快云中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在GitHub & 优快云中写博客,唯一博客更新的地址为:亓官劼的博客 ,近期将逐渐同步刷题相关记录到GitHub:Algorithmic-learning-records,大多是本人的刷题记录,如果转载请附上原文地址,谢谢。 由于学习工作的需要,算法刷题将会逐渐由C++向Python3过

一起加油 726

Leetcode 67. 二进制求和 C++

Leetcode 67. 二进制求和 题目 给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。 测试样例 1. 输入: a = "11", b = "1" 输出: "100" 2. 输入: a = "1010", b = "1011" 输出: "10101" 提示 每个字符串仅由字符 '0' 或 '1' 组成。 1 <= a.length, b.length <= 10^4 字符串如果不是 "0" ,就都不含前导零。 题解 加法模拟,注意进

weixin_43750513的博客 344

二进制求和 力扣67

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

qq_65031432的博客 516

LeetCode第67题_二进制求和

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

qq_40263592的博客 1361
上一篇: Leetcode 524. 通过删除字母匹配到字典里最长单词
下一篇: Leetcode 415.字符串相加
EIUC_Thread
博客等级 码龄7年 96粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值