题目描述:
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100".
public String addBinary(String a, String b) {
int len = Math.max(a.length(), b.length());
int c = 0, i = a.length() - 1, j = b.length() - 1;
char charC[] = new char[len + 1];
int k = len;
while(i >= 0 && j >= 0){
int intA = Integer.valueOf(String.valueOf(a.charAt(i)));
int intB = Integer.valueOf(String.valueOf(b.charAt(j)));
int tempSum = intA + intB + c;
if(tempSum == 0){
charC[k] = '0';
c = 0;
}
if(tempSum == 1){
charC[k] = '1';
c = 0;
}
if(tempSum == 2){
charC[k] = '0';
c = 1;
}
if(tempSum == 3){
charC[k] = '1';
c = 1;
}
--k;
--i;
--j;
}
while(i >= 0) {
int intA = Integer.valueOf(String.valueOf(a.charAt(i)));
int tempSum = intA + c;
if(tempSum == 0){
charC[k] = '0';
c = 0;
}
if(tempSum == 1){
charC[k] = '1';
c = 0;
}
if(tempSum == 2){
charC[k] = '0';
c = 1;
}
--k;
--i;
}
while(j >= 0) {
int intB = Integer.valueOf(String.valueOf(b.charAt(j)));
int tempSum = intB + c;
if(tempSum == 0){
charC[k] = '0';
c = 0;
}
if(tempSum == 1){
charC[k] = '1';
c = 0;
}
if(tempSum == 2){
charC[k] = '0';
c = 1;
}
--k;
--j;
}
if(c == 1){
charC[0] = '1';
return String.valueOf(charC);
} else {
String str = String.valueOf(charC);
return str.substring(1);
}
}