Add Binary
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
Java代码:
public class Solution {
public String addBinary(String a, String b) {
int len = a.length();
if (len > b.length())
len = b.length();
StringBuilder sb = new StringBuilder("");
int flag = 0;
for (int i = 0; i < len; i++) {
if (a.charAt(a.length() - 1 - i) != b.charAt(b.length() - 1 - i)) {
if (flag == 1) {
flag = 1;
sb.append("0");
} else
sb.append("1");
} else {
if (flag == 1) {
sb.append("1");
flag = 0;
} else
sb.append("0");
if (a.charAt(a.length() - 1 - i) == '1') {
flag = 1;
}
}
}
if (len == a.length()) {
for (int i = len; i < b.length(); i++) {
if (b.charAt(b.length() - 1 - i) == '0') {
if (flag == 1) {
flag = 0;
sb.append("1");
} else {
sb.append("0");
}
} else {
if (flag == 1) {
sb.append("0");
} else {
sb.append("1");
}
}
}
} else {
for (int i = len; i < a.length(); i++) {
if (a.charAt(a.length() - 1 - i) == '0') {
if (flag == 1) {
flag = 0;
sb.append("1");
} else {
sb.append("0");
}
} else {
if (flag == 1) {
sb.append("0");
} else {
sb.append("1");
}
}
}
}
if (flag == 1) {
flag = 0;
sb.append("1");
}
sb.reverse();
return sb.toString();
}
}