Solution
public class Solution {
public String addBinary(String a, String b) {
if (a.length() > b.length()) {
String tmp = a;
a = b;
b = tmp;
}
int s = a.length() - 1;
int l = b.length() - 1;
int carry = 0;
String res = "";
while (s >= 0) {
int sum = (int)(a.charAt(s--) - '0') + (int)(b.charAt(l--) - '0') + carry;
carry = sum / 2;
res = String.valueOf(sum % 2) + res;
}
while (l >= 0) {
int sum = (int)(b.charAt(l--) - '0') + carry;
carry = sum / 2;
res = String.valueOf(sum % 2) + res;
if (carry == 0) {
return b.substring(0, l + 1) + res;
}
}
if (carry == 1) {
res = "1" + res;
}
return res;
}
}
Problem#1
* 效率太低
* 代码结构比较复杂