您的位置:首页 > 其它

【Leetcode】Add Binary

2014-11-10 10:36 183 查看
Given two binary strings, return their sum (also a binary string).

For example,

a = 
"11"


b = 
"1"


Return 
"100"
.

这是一道二进制加法题,注意进位和取位就可以了,思路和add two number 非常类似

public String addBinary(String a, String b) {
if (a == null || a.length() == 0)
return b;
if (b == null || b.length() == 0)
return a;

int i = a.length() - 1;
int j = b.length() - 1;
int carry = 0;
StringBuilder result = new StringBuilder();

while (i >= 0 && j >= 0) {
int digit = (int) (a.charAt(i) - '0') + (int) (b.charAt(j) - '0')
+ carry;
carry = digit >> 1;
digit = digit & 1;
result.append(digit);
i--;
j--;
}
while (i >= 0) {
int digit = (int) (a.charAt(i) - '0') + carry;
carry = digit >> 1;
digit = digit & 1;
result.append(digit);
i--;
}
while (j >= 0) {
int digit = (int) (b.charAt(j) - '0') + carry;
carry = digit >> 1;
digit = digit & 1;
result.append(digit);
j--;
}
if (carry > 0) {
result.append(carry);
}
return result.reverse().toString();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: