【Leetcode】Add Binary
2014-11-10 10:36
183 查看
Given two binary strings, return their sum (also a binary string).
For example,
a =
b =
Return
这是一道二进制加法题,注意进位和取位就可以了,思路和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();
}
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();
}
相关文章推荐
- LeetCode[String]: Add Binary
- LeetCode Add Binary
- [LeetCode] Add Binary
- [leetcode]67. Add Binary[facebook]
- [LeetCode]Add Binary
- [LeetCode][JavaScript]Add Binary
- 【LeetCode 67】Add Binary (Python)
- [LeetCode] Add Binary 加法
- 【LeetCode】67. Add Binary
- leetcode第一刷_Add Binary
- [leetcode]Add Binary
- LeetCode--Add Binary
- 59 leetcode - Add Binary
- Add Binary - LeetCode
- LeetCode::Add Binary
- leetcode---Add Binary---string
- LeetCode--No.67--Add Binary
- leetcode:Add Binary
- LeetCode *** 67. Add Binary
- Leetcode_Add Binary