LeetCode 67. 二进制求和【字符串】
初始化指针和进位变量:从字符串末尾开始处理每一位,使用两个指针分别指向两个字符串的末尾,进位变量初始化为0。 逐位相加处理:从右到左逐位相加,每一位的和与进位决定当前位的结果和下一位的进位。 处理剩余位:处理完其中一个字符串后,继续处理剩余部分的位,并处理可能的进位。 处理最终进位:如果在处理完所有位后仍有进位,添加到结果中。 反转结果:由于我们是从低位到高位处理的,结果需要反转以正确显示高位在前。 初始化变量: 逐位处理:使用循环从右到左处理每一位,计算当前位的和与进位,更新结果和进位。 处理剩余位:处理完其中一个字符串后,继续处理剩余部分的位,确保所有位都被处理。 处理最终进位:如果有剩余的进位,添加到结果中。 反转结果:由于我们是从低位到高位处理的,结果需要反转以正确显示高位在前。
发布日期:2025-06-19 10:05:16
浏览次数:4
分类:精选文章
本文共 1695 字,大约阅读时间需要 5 分钟。
为了解决这个问题,我们需要将两个二进制字符串相加,并返回它们的和的二进制表示。二进制加法类似于十进制加法,但需要处理进位。
方法思路
解决代码
public class Solution { public String addBinary(String a, String b) { int i = a.length() - 1; int j = b.length() - 1; int carry = 0; StringBuilder sb = new StringBuilder(); // 从右到左处理每一位 while (i >= 0 && j >= 0) { int aDigit = a.charAt(i) - '0'; int bDigit = b.charAt(j) - '0'; int sum = aDigit + bDigit + carry; int current = sum % 2; carry = sum / 2; sb.append(current); i--; j--; } // 处理剩余的a部分 while (i >= 0) { int aDigit = a.charAt(i) - '0'; int sum = aDigit + carry; int current = sum % 2; carry = sum / 2; sb.append(current); i--; } // 处理剩余的b部分 while (j >= 0) { int bDigit = b.charAt(j) - '0'; int sum = bDigit + carry; int current = sum % 2; carry = sum / 2; sb.append(current); j--; } // 处理最终的进位 if (carry > 0) { sb.append(carry); } // 反转得到正确的顺序 return sb.reverse().toString(); }} 代码解释
i 和 j 分别指向两个字符串的末尾,carry 初始化为0。这种方法确保了我们高效地处理二进制字符串相加,并正确处理所有情况,包括进位和不同长度的字符串。
发表评论
最新留言
感谢大佬
[***.8.128.20]2026年05月28日 01时12分41秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHP数据文件过大,导致PHP加速器eaccelerator在PHP5.2版本下崩溃
2023-03-01
RabbitMQ - 死信、TTL原理、延迟队列安装和配置
2023-03-01
PHP数据访问的多重查询(租房子查询)
2023-03-01
RabbitMQ - 如保证消息的可靠性?(消息确认、消息持久化、失败重试机制)
2023-03-01
RabbitMQ - 基于 SpringAMQP 带你实现五种消息队列模型
2023-03-01
php数组函数分析--array_column
2023-03-01
php数组去重复数据的小例子
2023-03-01
php数组实现:哈希 +双向链表
2023-03-01
PHP数组排序函数array_multisort()函数详解(二)
2023-03-01
php数组的几个函数和超全局变量
2023-03-01
PHP文件上传详解
2023-03-01
PHP文件锁
2023-03-01
php文本框输入制定文本,php – 当用户没有向文本框输入任何内容时...
2023-03-01
PHP时间戳和日期相互转换操作总结
2023-03-01
php时间戳知识点,php 时间戳函数总结与示例
2023-03-01
php更新数据库失败,php – 无法更新MySQL数据库
2023-03-01
php机器人聊天对话框,基于AIML的PHP聊天机器人
2023-03-01
PHP查找数组中最大值与最小值
2023-03-01
php查最大值,在PHP数组中查找最大值
2023-03-01