Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
public class Solution {
public String addBinary(String a, String b) {
int carry = 0;
int sum = 0;
StringBuilder result = new StringBuilder();
int i;
for (i = 0; i < a.length() && i < b.length(); i++) {
int m = a.charAt(a.length() - i - 1) - '0';
int n = b.charAt(b.length() - i - 1) - '0';
sum = (carry + m + n) % 2;
carry = (carry + m + n) / 2;
result.insert(0, sum + "");
}
for (; i < a.length(); i++) {
int m = a.charAt(a.length() - i - 1) - '0';
sum = (carry + m) % 2;
carry = (carry + m) / 2;
result.insert(0, sum + "");
}
for (; i < b.length(); i++) {
int m = b.charAt(b.length() - i - 1) - '0';
sum = (carry + m) % 2;
carry = (carry + m) / 2;
result.insert(0, sum + "");
}
if (carry == 1) {
result.insert(0, carry + "");
}
return result.toString();
}
}