* 二进制加法 十进制加法
* 步骤: 1.反转 2.短的补齐位数 3.计算 % /
*/
class Solution {
public String addBinary(String a, String b) {
a = new StringBuilder(a).reverse().toString();
b = new StringBuilder(b).reverse().toString();
int lenA = a.length();
int lenB = b.length();
int MaxLen = lenA > lenB ? lenA : lenB;
if (lenA > lenB) {
for (int i = 1; i <= lenA - lenB; i++) {
b += "0";
}
} else {
for (int i = 1; i <= lenB - lenA; i++) {
a += "0";
}
}
int addOne = 0;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < MaxLen; i++) {
int sum = Integer.parseInt(a.charAt(i) + "") + Integer.parseInt(b.charAt(i) + "") + addOne;
sb.append(sum % 2);
addOne = sum / 2;
}
if (addOne > 0){
sb.append(addOne);
}
return sb.reverse().toString();
}
}