思路:大整数加法
代码如下:
public class Solution
{
public String addBinary(String a, String b)
{
StringBuilder sb = new StringBuilder();
int i;
int c = 0;
StringBuilder a1 = new StringBuilder(a).reverse();
StringBuilder b1 = new StringBuilder(b).reverse();
for (i = 0; i < a1.length() && i < b1.length(); i++)
{
int num1 = a1.charAt(i) - '0';
int num2 = b1.charAt(i) - '0';
int sum = num1 + num2 + c;
c = sum / 2;
sum %= 2;
sb.append((char)('0' + sum));
}
String tmp;
if (i >= a1.length()) tmp = b1.toString();
else tmp = a1.toString();
for (; i < tmp.length(); i++)
{
int num1 = tmp.charAt(i) - '0';
int sum = num1 + c;
c = sum / 2;
sum %= 2;
sb.append((char)('0' + sum));
}
if (c != 0)
{
sb.append((char)('0' + c));
}
return sb.reverse().toString();
}
}