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) {
String tmp = a;
a = a.length() <= b.length() ? a : b;
b = tmp.length() <= b.length() ? b : tmp; <span style="color:#ff0000;">// 记得用tmp两次</span>
int carry = 0;
int i,j;
String result = "";
for (i = a.length()-1, j = b.length()-1; i >= 0; i--,j--) {
int x = (int)(a.charAt(i) - '0');
int y = (int)(b.charAt(j) - '0');
int r = (x + y + carry)%2;
carry = (x + y + carry)/2;
result = (char) (r + '0') + result;
}
for (; j >= 0; j--) { <span style="color:#ff0000;">//不要忘了这个循环</span>
int y = (int)(b.charAt(j) - '0');
int r = (y + carry)%2;
carry = (y + carry)/2;
result = (char) (r + '0') + result;
}
if (carry == 1) {
result = '1' + result;
}
return result;
}