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 inta = Integer.parseInt(a, 2);
int intb = Integer.parseInt(b, 2);
return Integer.toBinaryString(inta+intb);
}
范围不够
还是得重写。。。
public String addBinary(String a, String b) {
StringBuffer result = new StringBuffer();
int i = a.length()-1;
int j = b.length()-1;
int carry = 0;
for(;i >= 0 && j >= 0;i--,j--){
result.append((a.charAt(i)-'0' + b.charAt(j)-'0' + carry) % 2);
carry = (a.charAt(i)-'0' + b.charAt(j)-'0' + carry) / 2;
}
if(i >= 0){
for(;i >= 0;i--){
result.append((a.charAt(i)-'0' + carry) % 2);
carry = (a.charAt(i)-'0' + carry) / 2;
}
}
else{
for(;j >= 0;j--){
result.append((b.charAt(j)-'0' + carry) % 2);
carry = (b.charAt(j)-'0' + carry) / 2;
}
}
if(carry != 0) result.append(carry);
return result.reverse().toString();
}