Given two binary strings, return their sum (also a binary string).
For example,
a = “11”
b = “1”
Return “100”.
题意:给定两个二进制数,求其和
解决思路:
- 把二进制数转换为整数,求和后转换为二进制字符串
- 按照二进制运算规则直接得结果
代码:
public class Solution {
public String addBinary(String a, String b) {
StringBuilder str = new StringBuilder();
int aPtr = a.length() - 1;
int bPtr = b.length() - 1;
int carry = 0;
int count = 0;
while(aPtr >= 0 || bPtr >= 0) {
if(aPtr >= 0) {
if(a.charAt(aPtr) == '1') {
count ++;
}
}
if(bPtr >= 0) {
if(b.charAt(bPtr) == '1') {
count ++;
}
}
if(carry == 1) {
count++;
}
carry = (count > 1 ? 1 : 0);
str.insert(0, ((count == 0 || count == 2)? '0' : '1'));
count = 0;
aPtr--;
bPtr--;
}
if(carry == 1) {
str.insert(0, '1');
}
return str.toString();
}
}
该博客介绍了如何解决LeetCode上的Add Binary问题,即给定两个二进制字符串,求它们的和。解决方案包括将二进制数转换为整数进行加法运算,或将二进制数直接按位相加。提供了相应的代码实现。
500

被折叠的 条评论
为什么被折叠?



