您的位置:首页 > 其它

LintCode Add Binary 二进制求和

2015-06-18 17:27 369 查看
给定两个二进制字符串,返回他们的和(用二进制表示)。

Given
two binary strings, return their sum (also a binary string).

样例

a =
11

b =
1

返回
100


public class Solution {
/**
* @param a a number
* @param b a number
* @return the result
*/
public String addBinary(String a, String b) {
if (a.length() < b.length()) {
String temp = a;
a = b;
b = temp;
}
int alen = a.length(), blen = b.length();
StringBuilder sb = new StringBuilder("");
int carry = 0;
int i = 0;
for (; i < blen; i++) {
int sum = carry + a.charAt(alen - 1 - i) + b.charAt(blen -1 - i) - 2 * '0';
char cur = (char)('0' + sum % 2);
carry = sum / 2;
sb.insert(0, cur);
}
for (; i < alen; i++) {
int sum = carry + a.charAt(alen - 1 - i) - '0';
char cur = (char)('0' + sum % 2);
carry = sum / 2;
sb.insert(0, cur);
}
if (carry != 0) { sb.insert(0, (char)('0' + carry)); }
return sb.toString();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: