Leetcode--Java--67. 二进制求和

本博客介绍如何使用Java解决LeetCode的67题,即计算两个二进制字符串的和。通过模拟竖式加法,逆置字符串,处理低位并进行进位操作,最终得到二进制和的解决方案。涉及到的关键技术包括字符串处理和高精度加法。
摘要由CSDN通过智能技术生成

题目描述

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

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

样例描述

示例 1:

输入: a = "11", b = "1"
输出: "100"
示例 2:

输入: a = "1010", b = "1011"
输出: "10101"
 

提示:

每个字符串仅由字符 '0''1' 组成。
1 <= a.length, b.length <= 10^4
字符串如果不是 "0" ,就都不含前导零。

思路

  1. 类似于高精度加法,直接做竖式加法,保存进位。
  2. 先逆置,对应处理低位。不需找出两个字符串较长的,直接各自加上到进位暂存,然后对进位进行取模,保留模运算后的值为该位结果。 然后除以2即可
  3. String逆转要先转成StringBuffer/StringBuilder
  4. 加到进位时是整数,将字符减去’0’可以得到该字符的数值
  5. 最后记得逆转回来

代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值